summaryrefslogtreecommitdiff
path: root/django/test/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/test/utils.py')
-rw-r--r--django/test/utils.py18
1 files changed, 18 insertions, 0 deletions
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),