diff options
-rwxr-xr-x | bottle.py | 2 | ||||
-rwxr-xr-x | test/test_environ.py | 3 |
2 files changed, 4 insertions, 1 deletions
@@ -1594,7 +1594,7 @@ class BaseRequest(object): def __setattr__(self, name, value): if name == 'environ': return object.__setattr__(self, name, value) key = 'bottle.request.ext.%s' % name - if key in self.environ: + if hasattr(self, name): raise AttributeError("Attribute already defined: %s" % name) self.environ[key] = value diff --git a/test/test_environ.py b/test/test_environ.py index 908b9d8..d367448 100755 --- a/test/test_environ.py +++ b/test/test_environ.py @@ -462,6 +462,9 @@ class TestRequest(unittest.TestCase): # Attributes are read-only once set. self.assertRaises(AttributeError, setattr, r, 'foo', 'x') + # Properties raise AttributeError. + self.assertRaises(AttributeError, setattr, r, 'body', 'x') + # Unknown attributes raise AttributeError. self.assertRaises(AttributeError, getattr, r, 'somevalue') |