(self)
| 3607 | '(item, arg: int) -> str') |
| 3608 | |
| 3609 | def test_method_non_descriptor(self): |
| 3610 | class Callable: |
| 3611 | def __init__(self, value): |
| 3612 | self.value = value |
| 3613 | def __call__(self, arg): |
| 3614 | return self.value, arg |
| 3615 | |
| 3616 | class A: |
| 3617 | t = functools.singledispatchmethod(Callable('general')) |
| 3618 | t.register(int, Callable('special')) |
| 3619 | |
| 3620 | @functools.singledispatchmethod |
| 3621 | def u(self, arg): |
| 3622 | return 'general', arg |
| 3623 | u.register(int, Callable('special')) |
| 3624 | |
| 3625 | v = functools.singledispatchmethod(Callable('general')) |
| 3626 | @v.register(int) |
| 3627 | def _(self, arg): |
| 3628 | return 'special', arg |
| 3629 | |
| 3630 | a = A() |
| 3631 | self.assertEqual(a.t(0), ('special', 0)) |
| 3632 | self.assertEqual(a.t(2.5), ('general', 2.5)) |
| 3633 | self.assertEqual(A.t(0), ('special', 0)) |
| 3634 | self.assertEqual(A.t(2.5), ('general', 2.5)) |
| 3635 | self.assertEqual(a.u(0), ('special', 0)) |
| 3636 | self.assertEqual(a.u(2.5), ('general', 2.5)) |
| 3637 | self.assertEqual(a.v(0), ('special', 0)) |
| 3638 | self.assertEqual(a.v(2.5), ('general', 2.5)) |
| 3639 | |
| 3640 | |
| 3641 | class CachedCostItem: |
nothing calls this directly
no test coverage detected