[1.6.x] Fixed #21307 -- Moved TransRealMixin to django.test.utils.

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

View File

@ -11,7 +11,7 @@ from django.conf import settings
from django.contrib.humanize.templatetags import humanize
from django.template import Template, Context, defaultfilters
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.timezone import utc
from django.utils import translation
@ -19,8 +19,6 @@ from django.utils.translation import ugettext as _
from django.utils import tzinfo
from django.utils.unittest import skipIf
from i18n import TransRealMixin
# 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

View File

@ -2,6 +2,7 @@ from contextlib import contextmanager
import logging
import re
import sys
from threading import local
import time
import warnings
from functools import wraps
@ -441,6 +442,23 @@ def patch_logger(logger_name, log_level):
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
# in which the program runs. As a consequence, we must skip tests that
# don't enforce a specific timezone (with timezone.override or equivalent),

View File

@ -6,13 +6,12 @@ import decimal
from django.template.defaultfilters import *
from django.test import TestCase
from django.test.utils import TransRealMixin
from django.utils import six
from django.utils import unittest, translation
from django.utils.safestring import SafeData
from django.utils.encoding import python_2_unicode_compatible
from i18n import TransRealMixin
class DefaultFiltersTests(TestCase):

View File

@ -8,7 +8,7 @@ from django.test import TestCase
from django.utils.translation import ugettext_lazy, override
from forms_tests.models import Cheese
from i18n import TransRealMixin
from django.test.utils import TransRealMixin
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.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 import six
from django.utils import translation
from i18n import TransRealMixin
@override_settings(
USE_I18N=True,

View File

@ -12,7 +12,7 @@ from django.core.management.utils import find_command
from django.template import Template, Context
from django.template.base import TemplateSyntaxError
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.formats import (get_format, date_format, time_format,
localize, localize_input, iter_format_modules, get_format_modules,
@ -44,7 +44,6 @@ if find_command('msgfmt'):
from .commands.compilation import (PoFileTests, PoFileContentsTests,
PercentRenderingTests, MultipleLocaleCompilationTests,
CompilationErrorHandling)
from . import TransRealMixin
from .forms import I18nForm, SelectDateForm, SelectDateWidget, CompanyForm
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.test import RequestFactory, TestCase
from django.test.utils import (setup_test_template_loader,
restore_template_loaders, override_settings)
restore_template_loaders, override_settings, TransRealMixin)
from django.utils import unittest
from django.utils.encoding import python_2_unicode_compatible
from django.utils.formats import date_format
@ -33,8 +33,6 @@ from django.utils import six
from django.utils.six.moves.urllib.parse import urljoin
from django.utils.tzinfo import LocalTimezone
from i18n import TransRealMixin
try:
from .loaders import RenderToStringTest, EggLoaderTest
except ImportError as e: