diff options
| author | Ramiro Morales <cramm0@gmail.com> | 2013-10-22 20:38:11 -0300 |
|---|---|---|
| committer | Ramiro Morales <cramm0@gmail.com> | 2013-10-22 22:40:01 -0300 |
| commit | bcc65c13a086f3e6d24dc7fc92a167fd836af501 (patch) | |
| tree | 55d025e8a1e8b7229fafb0fbbd5221db1de699af /django | |
| parent | 2e74d6cb53a38c4cc08d4a069157be335a486ddd (diff) | |
[1.6.x] Fixed #21307 -- Moved TransRealMixin to django.test.utils.
51d2e1fb23 from master.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/humanize/tests.py | 4 | ||||
| -rw-r--r-- | django/test/utils.py | 18 |
2 files changed, 19 insertions, 3 deletions
diff --git a/django/contrib/humanize/tests.py b/django/contrib/humanize/tests.py index 54a60f8fd6..d35773e39c 100644 --- a/django/contrib/humanize/tests.py +++ b/django/contrib/humanize/tests.py @@ -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 diff --git a/django/test/utils.py b/django/test/utils.py index 535a70b4f7..818ccafdf3 100644 --- a/django/test/utils.py +++ b/django/test/utils.py @@ -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), |
