summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorOliver Beattie <oliver@obeattie.com>2013-04-19 10:44:47 +0100
committerClaude Paroz <claude@2xlibre.net>2013-06-21 16:57:47 +0200
commit552a90b44456f24de228a6c7cd916c040787cf22 (patch)
treebba505c4ed2e8cb37966d79d4b014bd3893e8ca4 /django
parent7314007c5bf57b9184c0bd6a8246582dd2cb8179 (diff)
Fixed #20290 -- Allow override_settings to be nested
Refactored override_settings to store the underlying settings._wrapped value seen at runtime, not instantiation time.
Diffstat (limited to 'django')
-rw-r--r--django/test/utils.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/django/test/utils.py b/django/test/utils.py
index be586c75a6..fc4558875e 100644
--- a/django/test/utils.py
+++ b/django/test/utils.py
@@ -207,7 +207,6 @@ class override_settings(object):
"""
def __init__(self, **kwargs):
self.options = kwargs
- self.wrapped = settings._wrapped
def __enter__(self):
self.enable()
@@ -246,6 +245,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 +253,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__,