1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

[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),