@@ -74,6 +74,34 @@ def wrapper(wrapped, instance, args, kwargs):
7474 self .assertEqual (function .__qualname__ , "override_qualname" )
7575 self .assertEqual (instance .__qualname__ , "override_qualname" )
7676
77+ def test_delete_qualname (self ):
78+
79+ @passthru_decorator
80+ def function ():
81+ pass
82+
83+ function .__qualname__ = "override_qualname"
84+
85+ self .assertEqual (function .__qualname__ , "override_qualname" )
86+
87+ self .assertRaises (TypeError , delattr , function , "__qualname__" )
88+
89+ def test_delete_qualname_modified_on_original (self ):
90+ def function ():
91+ pass
92+
93+ def wrapper (wrapped , instance , args , kwargs ):
94+ return wrapped (* args , ** kwargs )
95+
96+ instance = wrapt .FunctionWrapper (function , wrapper )
97+
98+ instance .__qualname__ = "override_qualname"
99+
100+ self .assertEqual (function .__qualname__ , "override_qualname" )
101+ self .assertEqual (instance .__qualname__ , "override_qualname" )
102+
103+ self .assertRaises (TypeError , delattr , instance , "__qualname__" )
104+
77105 def test_update_module (self ):
78106 @passthru_decorator
79107 def function ():
@@ -161,5 +189,40 @@ def wrapper(wrapped, instance, args, kwargs):
161189 self .assertEqual (instance .__annotations__ , override_annotations )
162190
163191
192+ def test_delete_annotations (self ):
193+ @passthru_decorator
194+ def function ():
195+ pass
196+
197+ override_annotations = {"override_annotations" : "" }
198+ function .__annotations__ = override_annotations
199+
200+ self .assertEqual (function .__annotations__ , override_annotations )
201+
202+ del function .__annotations__
203+
204+ self .assertEqual (function .__annotations__ , {})
205+
206+ def test_delete_annotations_modified_on_original (self ):
207+ def function ():
208+ pass
209+
210+ def wrapper (wrapped , instance , args , kwargs ):
211+ return wrapped (* args , ** kwargs )
212+
213+ instance = wrapt .FunctionWrapper (function , wrapper )
214+
215+ override_annotations = {"override_annotations" : "" }
216+ instance .__annotations__ = override_annotations
217+
218+ self .assertEqual (function .__annotations__ , override_annotations )
219+ self .assertEqual (instance .__annotations__ , override_annotations )
220+
221+ del instance .__annotations__
222+
223+ self .assertEqual (function .__annotations__ , {})
224+ self .assertEqual (instance .__annotations__ , {})
225+
226+
164227if __name__ == "__main__" :
165228 unittest .main ()
0 commit comments