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

Class TestPartialMethod

Lib/test/test_functools.py:678–827  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

676
677
678class TestPartialMethod(unittest.TestCase):
679
680 class A(object):
681 nothing = functools.partialmethod(capture)
682 positional = functools.partialmethod(capture, 1)
683 keywords = functools.partialmethod(capture, a=2)
684 both = functools.partialmethod(capture, 3, b=4)
685 spec_keywords = functools.partialmethod(capture, self=1, func=2)
686
687 nested = functools.partialmethod(positional, 5)
688
689 over_partial = functools.partialmethod(functools.partial(capture, c=6), 7)
690
691 static = functools.partialmethod(staticmethod(capture), 8)
692 cls = functools.partialmethod(classmethod(capture), d=9)
693
694 a = A()
695
696 def test_arg_combinations(self):
697 self.assertEqual(self.a.nothing(), ((self.a,), {}))
698 self.assertEqual(self.a.nothing(5), ((self.a, 5), {}))
699 self.assertEqual(self.a.nothing(c=6), ((self.a,), {'c': 6}))
700 self.assertEqual(self.a.nothing(5, c=6), ((self.a, 5), {'c': 6}))
701
702 self.assertEqual(self.a.positional(), ((self.a, 1), {}))
703 self.assertEqual(self.a.positional(5), ((self.a, 1, 5), {}))
704 self.assertEqual(self.a.positional(c=6), ((self.a, 1), {'c': 6}))
705 self.assertEqual(self.a.positional(5, c=6), ((self.a, 1, 5), {'c': 6}))
706
707 self.assertEqual(self.a.keywords(), ((self.a,), {'a': 2}))
708 self.assertEqual(self.a.keywords(5), ((self.a, 5), {'a': 2}))
709 self.assertEqual(self.a.keywords(c=6), ((self.a,), {'a': 2, 'c': 6}))
710 self.assertEqual(self.a.keywords(5, c=6), ((self.a, 5), {'a': 2, 'c': 6}))
711
712 self.assertEqual(self.a.both(), ((self.a, 3), {'b': 4}))
713 self.assertEqual(self.a.both(5), ((self.a, 3, 5), {'b': 4}))
714 self.assertEqual(self.a.both(c=6), ((self.a, 3), {'b': 4, 'c': 6}))
715 self.assertEqual(self.a.both(5, c=6), ((self.a, 3, 5), {'b': 4, 'c': 6}))
716
717 self.assertEqual(self.A.both(self.a, 5, c=6), ((self.a, 3, 5), {'b': 4, 'c': 6}))
718
719 self.assertEqual(self.a.spec_keywords(), ((self.a,), {'self': 1, 'func': 2}))
720
721 def test_nested(self):
722 self.assertEqual(self.a.nested(), ((self.a, 1, 5), {}))
723 self.assertEqual(self.a.nested(6), ((self.a, 1, 5, 6), {}))
724 self.assertEqual(self.a.nested(d=7), ((self.a, 1, 5), {'d': 7}))
725 self.assertEqual(self.a.nested(6, d=7), ((self.a, 1, 5, 6), {'d': 7}))
726
727 self.assertEqual(self.A.nested(self.a, 6, d=7), ((self.a, 1, 5, 6), {'d': 7}))
728
729 def test_over_partial(self):
730 self.assertEqual(self.a.over_partial(), ((self.a, 7), {'c': 6}))
731 self.assertEqual(self.a.over_partial(5), ((self.a, 7, 5), {'c': 6}))
732 self.assertEqual(self.a.over_partial(d=8), ((self.a, 7), {'c': 6, 'd': 8}))
733 self.assertEqual(self.a.over_partial(5, d=8), ((self.a, 7, 5), {'c': 6, 'd': 8}))
734
735 self.assertEqual(self.A.over_partial(self.a, 5, d=8), ((self.a, 7, 5), {'c': 6, 'd': 8}))

Callers

nothing calls this directly

Calls 1

AClass · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…