@@ -2221,32 +2221,36 @@ def test_or_and_ror(self):
22212221 def test_setattr (self ):
22222222 origin = collections .abc .Generator
22232223 alias = typing_extensions .Generator
2224+ original_name = alias ._name
2225+
2226+ def cleanup ():
2227+ for obj in origin , alias :
2228+ for attr in 'foo' , '__dunder__' :
2229+ try :
2230+ delattr (obj , attr )
2231+ except Exception :
2232+ pass
2233+ try :
2234+ alias ._name = original_name
2235+ except Exception :
2236+ pass
2237+
2238+ self .addCleanup (cleanup )
22242239
22252240 # Attribute assignment on generic alias sets attribute on origin
22262241 alias .foo = 1
22272242 self .assertEqual (alias .foo , 1 )
22282243 self .assertEqual (origin .foo , 1 )
2229- # cleanup
2230- del origin .foo
2231- self .assertRaises (AttributeError , lambda : alias .foo )
2232- self .assertRaises (AttributeError , lambda : origin .foo )
2233-
22342244 # Except for dunders...
22352245 alias .__dunder__ = 2
22362246 self .assertEqual (alias .__dunder__ , 2 )
22372247 self .assertRaises (AttributeError , lambda : origin .__dunder__ )
2238- # cleanup
2239- del alias .__dunder__
2240- self .assertRaises (AttributeError , lambda : alias .__dunder___ )
22412248
22422249 # ...and certain known attributes
22432250 old_name = alias ._name
22442251 alias ._name = "NewName"
22452252 self .assertEqual (alias ._name , "NewName" )
22462253 self .assertRaises (AttributeError , lambda : origin ._name )
2247- # cleanup
2248- alias ._name = old_name
2249- self .assertEqual (alias ._name , old_name )
22502254
22512255
22522256class OtherABCTests (BaseTestCase ):
0 commit comments