(self)
| 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): |
nothing calls this directly
no test coverage detected