@@ -84,7 +84,12 @@ def function():
8484
8585 self .assertEqual (function .__qualname__ , "override_qualname" )
8686
87- self .assertRaises (TypeError , delattr , function , "__qualname__" )
87+ # CPython raises TypeError when deleting __qualname__ from a function
88+ # because the C-level setter rejects a NULL value. PyPy raises
89+ # AttributeError instead. Both indicate that deletion is not supported.
90+ self .assertRaises (
91+ (TypeError , AttributeError ), delattr , function , "__qualname__"
92+ )
8893
8994 def test_delete_qualname_modified_on_original (self ):
9095 def function ():
@@ -100,7 +105,12 @@ def wrapper(wrapped, instance, args, kwargs):
100105 self .assertEqual (function .__qualname__ , "override_qualname" )
101106 self .assertEqual (instance .__qualname__ , "override_qualname" )
102107
103- self .assertRaises (TypeError , delattr , instance , "__qualname__" )
108+ # CPython raises TypeError when deleting __qualname__ from a function
109+ # because the C-level setter rejects a NULL value. PyPy raises
110+ # AttributeError instead. Both indicate that deletion is not supported.
111+ self .assertRaises (
112+ (TypeError , AttributeError ), delattr , instance , "__qualname__"
113+ )
104114
105115 def test_update_module (self ):
106116 @passthru_decorator
@@ -188,7 +198,6 @@ def wrapper(wrapped, instance, args, kwargs):
188198 self .assertEqual (function .__annotations__ , override_annotations )
189199 self .assertEqual (instance .__annotations__ , override_annotations )
190200
191-
192201 def test_delete_annotations (self ):
193202 @passthru_decorator
194203 def function ():
0 commit comments