@@ -364,14 +364,19 @@ def test_setstate(self):
364364 f = self .partial (signature )
365365 f .__setstate__ ((capture , (PH , 1 ), dict (a = 10 ), dict (attr = [])))
366366 self .assertEqual (signature (f ), (capture , (PH , 1 ), dict (a = 10 ), dict (attr = [])))
367- with self .assertRaises (TypeError ):
367+ with self .assertRaises (TypeError ) as cm :
368368 self .assertEqual (f (), (PH , 1 ), dict (a = 10 ))
369+ expected = ("missing positional arguments in 'partial' call; "
370+ "expected at least 1, got 0" )
371+ self .assertEqual (cm .exception .args [0 ], expected )
369372 self .assertEqual (f (2 ), ((2 , 1 ), dict (a = 10 )))
370373
371- # Leading Placeholder error
374+ # Trailing Placeholder error
372375 f = self .partial (signature )
373- with self .assertRaises (TypeError ):
376+ with self .assertRaises (TypeError ) as cm :
374377 f .__setstate__ ((capture , (1 , PH ), dict (a = 10 ), dict (attr = [])))
378+ expected = "trailing Placeholders are not allowed"
379+ self .assertEqual (cm .exception .args [0 ], expected )
375380
376381 def test_setstate_errors (self ):
377382 f = self .partial (signature )
@@ -556,10 +561,16 @@ class TestPartialPySubclass(TestPartialPy):
556561 partial = PyPartialSubclass
557562
558563 def test_subclass_optimization (self ):
564+ # `partial` input to `partial` subclass
559565 p = py_functools .partial (min , 2 )
560566 p2 = self .partial (p , 1 )
561567 self .assertIs (p2 .func , min )
562568 self .assertEqual (p2 (0 ), 0 )
569+ # `partial` subclass input to `partial` subclass
570+ p = self .partial (min , 2 )
571+ p2 = self .partial (p , 1 )
572+ self .assertIs (p2 .func , min )
573+ self .assertEqual (p2 (0 ), 0 )
563574
564575
565576class TestPartialMethod (unittest .TestCase ):
@@ -702,10 +713,16 @@ def f(a, b, /):
702713 def test_subclass_optimization (self ):
703714 class PartialMethodSubclass (functools .partialmethod ):
704715 pass
716+ # `partialmethod` input to `partialmethod` subclass
705717 p = functools .partialmethod (min , 2 )
706718 p2 = PartialMethodSubclass (p , 1 )
707719 self .assertIs (p2 .func , min )
708720 self .assertEqual (p2 .__get__ (0 )(), 0 )
721+ # `partialmethod` subclass input to `partialmethod` subclass
722+ p = PartialMethodSubclass (min , 2 )
723+ p2 = PartialMethodSubclass (p , 1 )
724+ self .assertIs (p2 .func , min )
725+ self .assertEqual (p2 .__get__ (0 )(), 0 )
709726
710727
711728class TestUpdateWrapper (unittest .TestCase ):
0 commit comments