Author: jacob
Date: 2009-12-12 11:53:32 -0600 (Sat, 12 Dec 2009)
New Revision: 11825

Added:
   django/branches/releases/1.1.X/tests/regressiontests/settings/
   django/branches/releases/1.1.X/tests/regressiontests/settings/__init__.py
   django/branches/releases/1.1.X/tests/regressiontests/settings/models.py
   django/branches/releases/1.1.X/tests/regressiontests/settings/tests.py
Modified:
   django/branches/releases/1.1.X/django/utils/functional.py
Log:
[1.1.X] Fixed #10130: you may now delete attributes on `settings`. Thanks, 
jcassee.

Backport of r11824.

Modified: django/branches/releases/1.1.X/django/utils/functional.py
===================================================================
--- django/branches/releases/1.1.X/django/utils/functional.py   2009-12-12 
17:51:51 UTC (rev 11824)
+++ django/branches/releases/1.1.X/django/utils/functional.py   2009-12-12 
17:53:32 UTC (rev 11825)
@@ -280,6 +280,13 @@
                 self._setup()
             setattr(self._wrapped, name, value)
 
+    def __delattr__(self, name):
+        if name == "_wrapped":
+            raise TypeError("can't delete _wrapped.")
+        if self._wrapped is None:
+            self._setup()
+        delattr(self._wrapped, name)
+
     def _setup(self):
         """
         Must be implemented by subclasses to initialise the wrapped object.

Added: django/branches/releases/1.1.X/tests/regressiontests/settings/__init__.py
===================================================================

Added: django/branches/releases/1.1.X/tests/regressiontests/settings/models.py
===================================================================

Added: django/branches/releases/1.1.X/tests/regressiontests/settings/tests.py
===================================================================
--- django/branches/releases/1.1.X/tests/regressiontests/settings/tests.py      
                        (rev 0)
+++ django/branches/releases/1.1.X/tests/regressiontests/settings/tests.py      
2009-12-12 17:53:32 UTC (rev 11825)
@@ -0,0 +1,17 @@
+import unittest
+from django.conf import settings
+
+class SettingsTests(unittest.TestCase):
+
+    #
+    # Regression tests for #10130: deleting settings.
+    #
+
+    def test_settings_delete(self):
+        settings.TEST = 'test'
+        self.assertEqual('test', settings.TEST)
+        del settings.TEST
+        self.assertRaises(AttributeError, getattr, settings, 'TEST')
+
+    def test_settings_delete_wrapped(self):
+        self.assertRaises(TypeError, delattr, settings, '_wrapped')

--

You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.


Reply via email to