1
0
mirror of https://github.com/django/django.git synced 2024-12-22 17:16:24 +00:00

Fixed #21307 -- Moved TransRealMixin to django.test.utils.

This commit is contained in:
Ramiro Morales 2013-10-22 20:38:11 -03:00
parent 2eb8f15516
commit 51d2e1fb23
8 changed files with 24 additions and 32 deletions

View File

@ -12,14 +12,12 @@ from django.conf import settings
from django.contrib.humanize.templatetags import humanize from django.contrib.humanize.templatetags import humanize
from django.template import Template, Context, defaultfilters from django.template import Template, Context, defaultfilters
from django.test import TestCase from django.test import TestCase
from django.test.utils import override_settings from django.test.utils import override_settings, TransRealMixin
from django.utils.html import escape from django.utils.html import escape
from django.utils.timezone import utc, get_fixed_timezone from django.utils.timezone import utc, get_fixed_timezone
from django.utils import translation from django.utils import translation
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from i18n import TransRealMixin
# Mock out datetime in some tests so they don't fail occasionally when they # Mock out datetime in some tests so they don't fail occasionally when they
# run too slow. Use a fixed datetime for datetime.now(). DST change in # run too slow. Use a fixed datetime for datetime.now(). DST change in

View File

@ -2,6 +2,7 @@ from contextlib import contextmanager
import logging import logging
import re import re
import sys import sys
from threading import local
import time import time
from unittest import skipUnless from unittest import skipUnless
import warnings import warnings
@ -415,6 +416,23 @@ def patch_logger(logger_name, log_level):
setattr(logger, log_level, orig) setattr(logger, log_level, orig)
class TransRealMixin(object):
"""This is the only way to reset the translation machinery. Otherwise
the test suite occasionally fails because of global state pollution
between tests."""
def flush_caches(self):
from django.utils.translation import trans_real
trans_real._translations = {}
trans_real._active = local()
trans_real._default = None
trans_real._accepted = {}
trans_real._checked_languages = {}
def tearDown(self):
self.flush_caches()
super(TransRealMixin, self).tearDown()
# On OSes that don't provide tzset (Windows), we can't set the timezone # On OSes that don't provide tzset (Windows), we can't set the timezone
# in which the program runs. As a consequence, we must skip tests that # in which the program runs. As a consequence, we must skip tests that
# don't enforce a specific timezone (with timezone.override or equivalent), # don't enforce a specific timezone (with timezone.override or equivalent),

View File

@ -17,13 +17,12 @@ from django.template.defaultfilters import (
urlize, urlizetrunc, wordcount, wordwrap, yesno, urlize, urlizetrunc, wordcount, wordwrap, yesno,
) )
from django.test import TestCase from django.test import TestCase
from django.test.utils import TransRealMixin
from django.utils import six from django.utils import six
from django.utils import translation from django.utils import translation
from django.utils.safestring import SafeData from django.utils.safestring import SafeData
from django.utils.encoding import python_2_unicode_compatible from django.utils.encoding import python_2_unicode_compatible
from i18n import TransRealMixin
class DefaultFiltersTests(TestCase): class DefaultFiltersTests(TestCase):

View File

@ -12,7 +12,7 @@ from django.test import TestCase
from django.utils.translation import ugettext_lazy, override from django.utils.translation import ugettext_lazy, override
from forms_tests.models import Cheese from forms_tests.models import Cheese
from i18n import TransRealMixin from django.test.utils import TransRealMixin
class FormsRegressionsTestCase(TransRealMixin, TestCase): class FormsRegressionsTestCase(TransRealMixin, TestCase):

View File

@ -1,18 +0,0 @@
from threading import local
class TransRealMixin(object):
"""This is the only way to reset the translation machinery. Otherwise
the test suite occasionally fails because of global state pollution
between tests."""
def flush_caches(self):
from django.utils.translation import trans_real
trans_real._translations = {}
trans_real._active = local()
trans_real._default = None
trans_real._accepted = {}
trans_real._checked_languages = {}
def tearDown(self):
self.flush_caches()
super(TransRealMixin, self).tearDown()

View File

@ -5,13 +5,11 @@ import os
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.test import TestCase from django.test import TestCase
from django.test.utils import override_settings from django.test.utils import override_settings, TransRealMixin
from django.utils._os import upath from django.utils._os import upath
from django.utils import six from django.utils import six
from django.utils import translation from django.utils import translation
from i18n import TransRealMixin
@override_settings( @override_settings(
USE_I18N=True, USE_I18N=True,

View File

@ -13,7 +13,7 @@ from django.core.management.utils import find_command
from django.template import Template, Context from django.template import Template, Context
from django.template.base import TemplateSyntaxError from django.template.base import TemplateSyntaxError
from django.test import TestCase, RequestFactory from django.test import TestCase, RequestFactory
from django.test.utils import override_settings from django.test.utils import override_settings, TransRealMixin
from django.utils import translation from django.utils import translation
from django.utils.formats import (get_format, date_format, time_format, from django.utils.formats import (get_format, date_format, time_format,
localize, localize_input, iter_format_modules, get_format_modules, localize, localize_input, iter_format_modules, get_format_modules,
@ -44,7 +44,6 @@ if find_command('msgfmt'):
from .commands.compilation import (PoFileTests, PoFileContentsTests, from .commands.compilation import (PoFileTests, PoFileContentsTests,
PercentRenderingTests, MultipleLocaleCompilationTests, PercentRenderingTests, MultipleLocaleCompilationTests,
CompilationErrorHandling) CompilationErrorHandling)
from . import TransRealMixin
from .forms import I18nForm, SelectDateForm, SelectDateWidget, CompanyForm from .forms import I18nForm, SelectDateForm, SelectDateWidget, CompanyForm
from .models import Company, TestModel from .models import Company, TestModel

View File

@ -22,7 +22,7 @@ from django.template import (base as template_base, loader, Context,
from django.template.loaders import app_directories, filesystem, cached from django.template.loaders import app_directories, filesystem, cached
from django.test import RequestFactory, TestCase from django.test import RequestFactory, TestCase
from django.test.utils import (setup_test_template_loader, from django.test.utils import (setup_test_template_loader,
restore_template_loaders, override_settings) restore_template_loaders, override_settings, TransRealMixin)
from django.utils.encoding import python_2_unicode_compatible from django.utils.encoding import python_2_unicode_compatible
from django.utils.formats import date_format from django.utils.formats import date_format
from django.utils._os import upath from django.utils._os import upath
@ -31,8 +31,6 @@ from django.utils.safestring import mark_safe
from django.utils import six from django.utils import six
from django.utils.six.moves.urllib.parse import urljoin from django.utils.six.moves.urllib.parse import urljoin
from i18n import TransRealMixin
# NumPy installed? # NumPy installed?
try: try:
import numpy import numpy