瀏覽代碼

Fixed #16447 -- Stopped using the setting name as the sender parameter for the setting_changed signal. Thanks, Alex Gaynor.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16530 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Jannis Leidel 13 年之前
父節點
當前提交
723b574793
共有 3 個文件被更改,包括 6 次插入5 次删除
  1. 1 1
      django/test/utils.py
  2. 1 1
      docs/ref/signals.txt
  3. 4 3
      tests/regressiontests/settings_tests/tests.py

+ 1 - 1
django/test/utils.py

@@ -177,7 +177,7 @@ class OverrideSettingsHolder(UserSettingsHolder):
     """
     def __setattr__(self, name, value):
         UserSettingsHolder.__setattr__(self, name, value)
-        setting_changed.send(sender=name, setting=name, value=value)
+        setting_changed.send(sender=self.__class__, setting=name, value=value)
 
 
 class override_settings(object):

+ 1 - 1
docs/ref/signals.txt

@@ -487,7 +487,7 @@ Sent when some :ref:`settings are overridden <overriding-setting>` with the
 Arguments sent with this signal:
 
 ``sender``
-    The setting name (string).
+    The settings handler.
 
 ``setting``
     Same as sender

+ 4 - 3
tests/regressiontests/settings_tests/tests.py

@@ -24,10 +24,11 @@ class SettingGetter(object):
 testvalue = None
 
 def signal_callback(sender, setting, value, **kwargs):
-    global testvalue
-    testvalue = value
+    if setting == 'TEST':
+        global testvalue
+        testvalue = value
 
-signals.setting_changed.connect(signal_callback, sender='TEST')
+signals.setting_changed.connect(signal_callback)
 
 class SettingsTests(TestCase):