@@ -211,3 +211,57 @@ def test_renamed_parameter_invalid_since_raises():
211211 @renamed_parameter (old = "videotype" , new = "extensions" , since = "invalid-version" )
212212 def fn (extensions = None ):
213213 return extensions
214+
215+
216+ def test_renamed_parameter_new_not_in_signature_raises ():
217+ with pytest .raises (ValueError , match = "not a parameter" ):
218+
219+ @renamed_parameter (old = "foo" , new = "nonexistent" )
220+ def fn (bar = None ):
221+ return bar
222+
223+
224+ def test_new_not_in_signature_raises ():
225+ """Applying a rename whose 'new' is not in the signature raises an error."""
226+ with pytest .raises (ValueError , match = "not a parameter" ):
227+
228+ @renamed_parameter (old = "videotype" , new = "video_type" )
229+ def fn (extensions = None ):
230+ return extensions
231+
232+
233+ def test_renamed_parameter_chaining_raises ():
234+ """Chaining renames A→B→C raises an error."""
235+ with pytest .raises (ValueError , match = "chaining renames is not allowed" ):
236+
237+ @renamed_parameter (old = "A" , new = "B" ) # outer: A→B, but B is already deprecated to C
238+ @renamed_parameter (old = "B" , new = "C" ) # inner: B→C
239+ def fn (B = None , C = None ):
240+ return C or B
241+
242+
243+ def test_renamed_parameter_multiple_independent_renames ():
244+ @renamed_parameter (old = "batchsize" , new = "batch_size" )
245+ @renamed_parameter (old = "videotype" , new = "extensions" )
246+ def fn (extensions = None , batch_size = None ):
247+ return extensions , batch_size
248+
249+ with pytest .warns (DLCDeprecationWarning ):
250+ result = fn (videotype = "mp4" )
251+ assert result == ("mp4" , None )
252+
253+ with pytest .warns (DLCDeprecationWarning ):
254+ result = fn (batchsize = 4 )
255+ assert result == (None , 4 )
256+
257+
258+ def test_renamed_parameter_positional_arg_unaffected ():
259+ @renamed_parameter (old = "in_random_order" , new = "shuffle" )
260+ def fn (shuffle = False ):
261+ return shuffle
262+
263+ with warnings .catch_warnings ():
264+ warnings .simplefilter ("error" , DLCDeprecationWarning )
265+ result = fn (True )
266+
267+ assert result is True
0 commit comments