MCPcopy Index your code
hub / github.com/python/cpython / test_properties_plus

Method test_properties_plus

Lib/test/test_descr.py:2512–2577  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2510 p = property(_testcapi.test_with_docstring)
2511
2512 def test_properties_plus(self):
2513 class C(object):
2514 foo = property(doc="hello")
2515 @foo.getter
2516 def foo(self):
2517 return self._foo
2518 @foo.setter
2519 def foo(self, value):
2520 self._foo = abs(value)
2521 @foo.deleter
2522 def foo(self):
2523 del self._foo
2524 c = C()
2525 self.assertEqual(C.foo.__doc__, "hello")
2526 self.assertNotHasAttr(c, "foo")
2527 c.foo = -42
2528 self.assertHasAttr(c, '_foo')
2529 self.assertEqual(c._foo, 42)
2530 self.assertEqual(c.foo, 42)
2531 del c.foo
2532 self.assertNotHasAttr(c, '_foo')
2533 self.assertNotHasAttr(c, "foo")
2534
2535 class D(C):
2536 @C.foo.deleter
2537 def foo(self):
2538 try:
2539 del self._foo
2540 except AttributeError:
2541 pass
2542 d = D()
2543 d.foo = 24
2544 self.assertEqual(d.foo, 24)
2545 del d.foo
2546 del d.foo
2547
2548 class E(object):
2549 @property
2550 def foo(self):
2551 return self._foo
2552 @foo.setter
2553 def foo(self, value):
2554 raise RuntimeError
2555 @foo.setter
2556 def foo(self, value):
2557 self._foo = abs(value)
2558 @foo.deleter
2559 def foo(self, value=None):
2560 del self._foo
2561
2562 e = E()
2563 e.foo = -42
2564 self.assertEqual(e.foo, 42)
2565 del e.foo
2566
2567 class F(E):
2568 @E.foo.deleter
2569 def foo(self):

Callers

nothing calls this directly

Calls 7

assertNotHasAttrMethod · 0.80
assertHasAttrMethod · 0.80
CClass · 0.70
DClass · 0.70
EClass · 0.70
FClass · 0.70
assertEqualMethod · 0.45

Tested by

no test coverage detected