diff options
| author | Andrew Godwin <andrew@aeracode.org> | 2013-06-28 17:32:57 +0100 |
|---|---|---|
| committer | Andrew Godwin <andrew@aeracode.org> | 2013-06-28 17:32:57 +0100 |
| commit | 7a47ba6f6aeca36b8b092dbafd36abb342d34d4b (patch) | |
| tree | e959922f7d4d08057225459e31697f410e26df26 /django/test | |
| parent | e2d7e83256234251a81ad3388428f6579795a672 (diff) | |
| parent | 48dd1e63bbb93479666208535a56f8c7c4aeab3a (diff) | |
Merge remote-tracking branch 'core/master' into schema-alteration
Conflicts:
django/db/backends/__init__.py
django/db/models/fields/related.py
tests/field_deconstruction/tests.py
Diffstat (limited to 'django/test')
| -rw-r--r-- | django/test/utils.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/django/test/utils.py b/django/test/utils.py index be586c75a6..591c588933 100644 --- a/django/test/utils.py +++ b/django/test/utils.py @@ -10,6 +10,7 @@ from django.conf import settings, UserSettingsHolder from django.core import mail from django.core.signals import request_started from django.db import reset_queries +from django.http import request from django.template import Template, loader, TemplateDoesNotExist from django.template.loaders import cached from django.test.signals import template_rendered, setting_changed @@ -87,13 +88,16 @@ def setup_test_environment(): - Set the email backend to the locmem email backend. - Setting the active locale to match the LANGUAGE_CODE setting. """ - Template.original_render = Template._render + Template._original_render = Template._render Template._render = instrumented_test_render - mail.original_email_backend = settings.EMAIL_BACKEND + # Storing previous values in the settings module itself is problematic. + # Store them in arbitrary (but related) modules instead. See #20636. + + mail._original_email_backend = settings.EMAIL_BACKEND settings.EMAIL_BACKEND = 'django.core.mail.backends.locmem.EmailBackend' - settings._original_allowed_hosts = settings.ALLOWED_HOSTS + request._original_allowed_hosts = settings.ALLOWED_HOSTS settings.ALLOWED_HOSTS = ['*'] mail.outbox = [] @@ -108,14 +112,14 @@ def teardown_test_environment(): - Restoring the email sending functions """ - Template._render = Template.original_render - del Template.original_render + Template._render = Template._original_render + del Template._original_render - settings.EMAIL_BACKEND = mail.original_email_backend - del mail.original_email_backend + settings.EMAIL_BACKEND = mail._original_email_backend + del mail._original_email_backend - settings.ALLOWED_HOSTS = settings._original_allowed_hosts - del settings._original_allowed_hosts + settings.ALLOWED_HOSTS = request._original_allowed_hosts + del request._original_allowed_hosts del mail.outbox @@ -207,7 +211,6 @@ class override_settings(object): """ def __init__(self, **kwargs): self.options = kwargs - self.wrapped = settings._wrapped def __enter__(self): self.enable() @@ -246,6 +249,7 @@ class override_settings(object): override = UserSettingsHolder(settings._wrapped) for key, new_value in self.options.items(): setattr(override, key, new_value) + self.wrapped = settings._wrapped settings._wrapped = override for key, new_value in self.options.items(): setting_changed.send(sender=settings._wrapped.__class__, @@ -253,6 +257,7 @@ class override_settings(object): def disable(self): settings._wrapped = self.wrapped + del self.wrapped for key in self.options: new_value = getattr(settings, key, None) setting_changed.send(sender=settings._wrapped.__class__, |
