@@ -182,11 +182,11 @@ def check_wrapper(self, wrapper, wrapped,
182182 self .assertTrue (wrapped_attr [key ] is wrapper_attr [key ])
183183
184184 def _default_update (self ):
185- def f ():
185+ def f (a : 'This is a new annotation' ):
186186 """This is a test"""
187187 pass
188188 f .attr = 'This is also a test'
189- def wrapper ():
189+ def wrapper (b : 'This is the prior annotation' ):
190190 pass
191191 functools .update_wrapper (wrapper , f )
192192 return wrapper , f
@@ -196,6 +196,8 @@ def test_default_update(self):
196196 self .check_wrapper (wrapper , f )
197197 self .assertEqual (wrapper .__name__ , 'f' )
198198 self .assertEqual (wrapper .attr , 'This is also a test' )
199+ self .assertEqual (wrapper .__annotations__ ['a' ], 'This is a new annotation' )
200+ self .assertNotIn ('b' , wrapper .__annotations__ )
199201
200202 @unittest .skipIf (sys .flags .optimize >= 2 ,
201203 "Docstrings are omitted with -O2 and above" )
@@ -214,6 +216,7 @@ def wrapper():
214216 self .check_wrapper (wrapper , f , (), ())
215217 self .assertEqual (wrapper .__name__ , 'wrapper' )
216218 self .assertEqual (wrapper .__doc__ , None )
219+ self .assertEqual (wrapper .__annotations__ , {})
217220 self .assertFalse (hasattr (wrapper , 'attr' ))
218221
219222 def test_selective_update (self ):
@@ -240,6 +243,7 @@ def wrapper():
240243 functools .update_wrapper (wrapper , max )
241244 self .assertEqual (wrapper .__name__ , 'max' )
242245 self .assertTrue (wrapper .__doc__ .startswith ('max(' ))
246+ self .assertEqual (wrapper .__annotations__ , {})
243247
244248class TestWraps (TestUpdateWrapper ):
245249
0 commit comments