mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
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
This commit is contained in:
@@ -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__,
|
||||
|
||||
Reference in New Issue
Block a user