def test_var_fails(): def src(*args, **kwargs): pass def dest(*args, **kwargs): pass with pytest.raises(ValueError): merge_args._merge(src, dest)
def test_positional_only(): from tests.posonly import old, new assert str(signature(new)) == '(prefix, foo, /, *args, **kwargs)' new = merge_args._merge(old, new) assert str(signature(new)) == '(prefix, foo, /, bar)'
def test_orig(): def old(foo, bar): """This is old's docstring.""" return foo + bar def new(prefix, foo, *args, **kwargs): return old(prefix + foo, *args, **kwargs) assert str(signature(new)) == '(prefix, foo, *args, **kwargs)' new = merge_args._merge(old, new) assert str(signature(new)) == '(prefix, foo, bar)' assert new.__doc__ == old.__doc__ assert new.__doc__ assert old('a', 'b') == 'ab' assert new('!', 'a', 'b') == '!ab'