@@ -515,7 +515,7 @@ def test_partial_genericalias(self):
515515 self .assertEqual (alias .__parameters__ , ())
516516
517517 # Issue 144475
518- def test_repr_for_segfault (self ):
518+ def test_repr_saftey_against_reentrant_mutation (self ):
519519 g_partial = None
520520
521521 class Function :
@@ -547,24 +547,21 @@ def __repr__(self):
547547 trigger = EvilObject ("trigger" , is_trigger = True )
548548 victim = EvilObject ("victim" )
549549
550- p = functools .partial (Function ("old_function" ), victim , victim = trigger )
551- g_partial = p
550+ g_partial = functools .partial (Function ("old_function" ), victim , victim = trigger )
552551 self .assertEqual (repr (g_partial ),"functools.partial(Function(old_function), EvilObject(victim), victim=EvilObject(trigger))" )
553552
554553 trigger .triggered = False
555554 g_partial = None
556- p = functools .partial (Function ("old_function" ), trigger , victim = victim )
557- g_partial = p
555+ g_partial = functools .partial (Function ("old_function" ), trigger , victim = victim )
558556 self .assertEqual (repr (g_partial ),"functools.partial(Function(old_function), EvilObject(trigger), victim=EvilObject(victim))" )
559557
560558
561559 trigger .triggered = False
562- p = functools .partial (Function ("old_function" ), trigger , victim )
563- g_partial = p
560+ g_partial = functools .partial (Function ("old_function" ), trigger , victim )
561+ self . assertEqual ( repr ( g_partial ), "functools.partial(Function(old_function), EvilObject(trigger), EvilObject(victim))" )
564562
565563 trigger .triggered = False
566- p = functools .partial (Function ("old_function" ), trigger = trigger , victim = victim )
567- g_partial = p
564+ g_partial = functools .partial (Function ("old_function" ), trigger = trigger , victim = victim )
568565 self .assertEqual (repr (g_partial ),"functools.partial(Function(old_function), trigger=EvilObject(trigger), victim=EvilObject(victim))" )
569566
570567 trigger .triggered = False
@@ -573,8 +570,7 @@ def __repr__(self):
573570 victim3 = EvilObject ("victim" )
574571 victim4 = EvilObject ("victim" )
575572 victim5 = EvilObject ("victim" )
576- p = functools .partial (Function ("old_function" ), trigger , victim1 , victim2 , victim3 , victim4 , victim = victim5 )
577- g_partial = p
573+ g_partial = functools .partial (Function ("old_function" ), trigger , victim1 , victim2 , victim3 , victim4 , victim = victim5 )
578574 self .assertEqual (repr (g_partial ),"functools.partial(Function(old_function), EvilObject(trigger), EvilObject(victim), EvilObject(victim), EvilObject(victim), EvilObject(victim), victim=EvilObject(victim))" )
579575
580576
0 commit comments