Author: jacob
Date: 2009-12-12 11:51:51 -0600 (Sat, 12 Dec 2009)
New Revision: 11824
Added:
django/trunk/tests/regressiontests/settings/
django/trunk/tests/regressiontests/settings/__init__.py
django/trunk/tests/regressiontests/settings/models.py
django/trunk/tests/regressiontests/settings/tests.py
Modified:
django/trunk/django/utils/functional.py
Log:
FIxed #10130: you may now delete attributes on `settings`. Thanks, jcassee.
Modified: django/trunk/django/utils/functional.py
===================================================================
--- django/trunk/django/utils/functional.py 2009-12-12 17:29:46 UTC (rev
11823)
+++ django/trunk/django/utils/functional.py 2009-12-12 17:51:51 UTC (rev
11824)
@@ -277,6 +277,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/trunk/tests/regressiontests/settings/__init__.py
===================================================================
Added: django/trunk/tests/regressiontests/settings/models.py
===================================================================
Added: django/trunk/tests/regressiontests/settings/tests.py
===================================================================
--- django/trunk/tests/regressiontests/settings/tests.py
(rev 0)
+++ django/trunk/tests/regressiontests/settings/tests.py 2009-12-12
17:51:51 UTC (rev 11824)
@@ -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.