summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2007-12-25 00:14:34 +0000
committerBrett Cannon <bcannon@gmail.com>2007-12-25 00:14:34 +0000
commit4e438bcc562b784651ef3ff7cfd2c9b557dd3260 (patch)
treebe0ef0296289bdb055b5b5b53b94f1051ee6baaf
parenta6ae8974c1992cdaf1a80a4b78abbd68bed90764 (diff)
downloadcpython-git-4e438bcc562b784651ef3ff7cfd2c9b557dd3260.tar.gz
Actually execute the tests for the getter/setter/deleter tests on properties.
Also fix the test by having the test classes inherit from object. Are the getter/setter/deleter attributes supposed to be able to chain? As of right now they can't as the property tries to call what the property returns, which is another property when they are chained.
-rw-r--r--Lib/test/test_descr.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index 9fa8659c19..1d54c4dba4 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -2131,7 +2131,7 @@ def properties():
def properties_plus():
- class C:
+ class C(object):
foo = property(doc="hello")
@foo.getter
def foo(self):
@@ -2146,8 +2146,11 @@ def properties_plus():
assert C.foo.__doc__ == "hello"
assert not hasattr(c, "foo")
c.foo = -42
+ assert hasattr(c, '_foo')
+ assert c._foo == 42
assert c.foo == 42
del c.foo
+ assert not hasattr(c, '_foo')
assert not hasattr(c, "foo")
class D(C):
@@ -2163,20 +2166,20 @@ def properties_plus():
del d.foo
del d.foo
- class E:
+ class E(object):
@property
def foo(self):
return self._foo
@foo.setter
- def foo (self, value):
+ def foo(self, value):
raise RuntimeError
@foo.setter
+ def foo(self, value):
+ self._foo = abs(value)
@foo.deleter
def foo(self, value=None):
- if value is None:
- del self._foo
- else:
- self._foo = abs(value)
+ del self._foo
+
e = E()
e.foo = -42
assert e.foo == 42
@@ -2193,6 +2196,7 @@ def properties_plus():
f.foo = -10
assert f.foo == 0
del f.foo
+ print "*** HIT"
def supers():
@@ -4477,6 +4481,7 @@ def test_main():
recursions()
weakrefs()
properties()
+ properties_plus()
supers()
inherits()
keywords()