mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Removed TransRealMixin.
Fixed #21688. Refs https://github.com/django/django/pull/1147.
This commit is contained in:
		| @@ -42,6 +42,9 @@ def update_installed_apps(**kwargs): | ||||
|         # Rebuild app_template_dirs cache. | ||||
|         from django.template.loaders import app_directories as mod | ||||
|         mod.app_template_dirs = mod.calculate_app_template_dirs() | ||||
|         # Rebuild translations cache. | ||||
|         from django.utils.translation import trans_real | ||||
|         trans_real._translations = {} | ||||
|  | ||||
|  | ||||
| @receiver(setting_changed) | ||||
| @@ -97,11 +100,14 @@ def clear_serializers_cache(**kwargs): | ||||
|  | ||||
| @receiver(setting_changed) | ||||
| def language_changed(**kwargs): | ||||
|     if kwargs['setting'] in ('LOCALE_PATHS', 'LANGUAGE_CODE'): | ||||
|     if kwargs['setting'] in {'LANGUAGES', 'LANGUAGE_CODE', 'LOCALE_PATHS'}: | ||||
|         from django.utils.translation import trans_real | ||||
|         trans_real._default = None | ||||
|         if kwargs['setting'] == 'LOCALE_PATHS': | ||||
|             trans_real._translations = {} | ||||
|         trans_real._active = threading.local() | ||||
|     if kwargs['setting'] in {'LANGUAGES', 'LOCALE_PATHS'}: | ||||
|         from django.utils.translation import trans_real | ||||
|         trans_real._translations = {} | ||||
|         trans_real.check_for_language.cache_clear() | ||||
|  | ||||
|  | ||||
| @receiver(setting_changed) | ||||
|   | ||||
| @@ -2,7 +2,6 @@ from contextlib import contextmanager | ||||
| import logging | ||||
| import re | ||||
| import sys | ||||
| from threading import local | ||||
| import time | ||||
| from unittest import skipUnless | ||||
| import warnings | ||||
| @@ -502,22 +501,6 @@ 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.check_for_language.cache_clear() | ||||
|  | ||||
|     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), | ||||
|   | ||||
| @@ -12,7 +12,6 @@ from django.conf import settings | ||||
| from django.template import Template, Context | ||||
| from django.template.base import TemplateSyntaxError | ||||
| from django.test import TestCase, RequestFactory, override_settings | ||||
| from django.test.utils import 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, | ||||
| @@ -31,7 +30,8 @@ from django.utils.translation import (activate, deactivate, | ||||
|     ungettext_lazy, | ||||
|     pgettext, | ||||
|     npgettext, npgettext_lazy, | ||||
|     check_for_language) | ||||
|     check_for_language, | ||||
|     string_concat) | ||||
|  | ||||
| from .forms import I18nForm, SelectDateForm, SelectDateWidget, CompanyForm | ||||
| from .models import Company, TestModel | ||||
| @@ -43,17 +43,19 @@ extended_locale_paths = settings.LOCALE_PATHS + ( | ||||
| ) | ||||
|  | ||||
|  | ||||
| class TranslationTests(TransRealMixin, TestCase): | ||||
| class TranslationTests(TestCase): | ||||
|  | ||||
|     def test_override(self): | ||||
|         activate('de') | ||||
|         with translation.override('pl'): | ||||
|             self.assertEqual(get_language(), 'pl') | ||||
|         self.assertEqual(get_language(), 'de') | ||||
|         with translation.override(None): | ||||
|             self.assertEqual(get_language(), settings.LANGUAGE_CODE) | ||||
|         self.assertEqual(get_language(), 'de') | ||||
|         deactivate() | ||||
|         try: | ||||
|             with translation.override('pl'): | ||||
|                 self.assertEqual(get_language(), 'pl') | ||||
|             self.assertEqual(get_language(), 'de') | ||||
|             with translation.override(None): | ||||
|                 self.assertEqual(get_language(), settings.LANGUAGE_CODE) | ||||
|             self.assertEqual(get_language(), 'de') | ||||
|         finally: | ||||
|             deactivate() | ||||
|  | ||||
|     def test_lazy_objects(self): | ||||
|         """ | ||||
| @@ -265,8 +267,7 @@ class TranslationTests(TransRealMixin, TestCase): | ||||
|         """ | ||||
|         six.text_type(string_concat(...)) should not raise a TypeError - #4796 | ||||
|         """ | ||||
|         import django.utils.translation | ||||
|         self.assertEqual('django', six.text_type(django.utils.translation.string_concat("dja", "ngo"))) | ||||
|         self.assertEqual('django', six.text_type(string_concat("dja", "ngo"))) | ||||
|  | ||||
|     def test_safe_status(self): | ||||
|         """ | ||||
| @@ -335,7 +336,6 @@ class TranslationTests(TransRealMixin, TestCase): | ||||
|  | ||||
|  | ||||
| class TranslationThreadSafetyTests(TestCase): | ||||
|     """Specifically not using TransRealMixin here to test threading.""" | ||||
|  | ||||
|     def setUp(self): | ||||
|         self._old_language = get_language() | ||||
| @@ -367,7 +367,7 @@ class TranslationThreadSafetyTests(TestCase): | ||||
|  | ||||
|  | ||||
| @override_settings(USE_L10N=True) | ||||
| class FormattingTests(TransRealMixin, TestCase): | ||||
| class FormattingTests(TestCase): | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(FormattingTests, self).setUp() | ||||
| @@ -806,7 +806,7 @@ class FormattingTests(TransRealMixin, TestCase): | ||||
|             ) | ||||
|  | ||||
|  | ||||
| class MiscTests(TransRealMixin, TestCase): | ||||
| class MiscTests(TestCase): | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(MiscTests, self).setUp() | ||||
| @@ -1019,7 +1019,7 @@ class MiscTests(TransRealMixin, TestCase): | ||||
|             self.assertNotEqual('pt-br', g(r)) | ||||
|  | ||||
|  | ||||
| class ResolutionOrderI18NTests(TransRealMixin, TestCase): | ||||
| class ResolutionOrderI18NTests(TestCase): | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(ResolutionOrderI18NTests, self).setUp() | ||||
| @@ -1037,20 +1037,21 @@ class ResolutionOrderI18NTests(TransRealMixin, TestCase): | ||||
|  | ||||
| class AppResolutionOrderI18NTests(ResolutionOrderI18NTests): | ||||
|  | ||||
|     @override_settings(LANGUAGE_CODE='de') | ||||
|     def test_app_translation(self): | ||||
|         # Original translation. | ||||
|         self.assertUgettext('Date/time', 'Datum/Zeit') | ||||
|  | ||||
|         # Different translation. | ||||
|         with self.modify_settings(INSTALLED_APPS={'append': 'i18n.resolution'}): | ||||
|             self.flush_caches() | ||||
|             # Force refreshing translations. | ||||
|             activate('de') | ||||
|  | ||||
|             # Doesn't work because it's added later in the list. | ||||
|             self.assertUgettext('Date/time', 'Datum/Zeit') | ||||
|  | ||||
|             with self.modify_settings(INSTALLED_APPS={'remove': 'django.contrib.admin.apps.SimpleAdminConfig'}): | ||||
|                 self.flush_caches() | ||||
|                 # Force refreshing translations. | ||||
|                 activate('de') | ||||
|  | ||||
|                 # Unless the original is removed from the list. | ||||
| @@ -1109,7 +1110,7 @@ class TestLanguageInfo(TestCase): | ||||
|         six.assertRaisesRegex(self, KeyError, r"Unknown language code xx-xx and xx\.", get_language_info, 'xx-xx') | ||||
|  | ||||
|  | ||||
| class MultipleLocaleActivationTests(TransRealMixin, TestCase): | ||||
| class MultipleLocaleActivationTests(TestCase): | ||||
|     """ | ||||
|     Tests for template rendering behavior when multiple locales are activated | ||||
|     during the lifetime of the same process. | ||||
| @@ -1243,7 +1244,7 @@ class MultipleLocaleActivationTests(TransRealMixin, TestCase): | ||||
|         'django.middleware.common.CommonMiddleware', | ||||
|     ), | ||||
| ) | ||||
| class LocaleMiddlewareTests(TransRealMixin, TestCase): | ||||
| class LocaleMiddlewareTests(TestCase): | ||||
|  | ||||
|     urls = 'i18n.urls' | ||||
|  | ||||
| @@ -1281,7 +1282,7 @@ class LocaleMiddlewareTests(TransRealMixin, TestCase): | ||||
|         'django.middleware.common.CommonMiddleware', | ||||
|     ), | ||||
| ) | ||||
| class CountrySpecificLanguageTests(TransRealMixin, TestCase): | ||||
| class CountrySpecificLanguageTests(TestCase): | ||||
|  | ||||
|     urls = 'i18n.urls' | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user