(validated)
| 270 | |
| 271 | @pytest.mark.parametrize('validated', (True, False)) |
| 272 | def test_var_args_kwargs(validated): |
| 273 | def foo(a, b, *args, d=3, **kwargs): |
| 274 | return f'a={a!r}, b={b!r}, args={args!r}, d={d!r}, kwargs={kwargs!r}' |
| 275 | |
| 276 | if validated: |
| 277 | foo = validate_call(foo) |
| 278 | |
| 279 | assert foo(1, 2) == 'a=1, b=2, args=(), d=3, kwargs={}' |
| 280 | assert foo(1, 2, 3, d=4) == 'a=1, b=2, args=(3,), d=4, kwargs={}' |
| 281 | assert foo(*[1, 2, 3], d=4) == 'a=1, b=2, args=(3,), d=4, kwargs={}' |
| 282 | assert foo(1, 2, args=(10, 11)) == "a=1, b=2, args=(), d=3, kwargs={'args': (10, 11)}" |
| 283 | assert foo(1, 2, 3, args=(10, 11)) == "a=1, b=2, args=(3,), d=3, kwargs={'args': (10, 11)}" |
| 284 | assert foo(1, 2, 3, e=10) == "a=1, b=2, args=(3,), d=3, kwargs={'e': 10}" |
| 285 | assert foo(1, 2, kwargs=4) == "a=1, b=2, args=(), d=3, kwargs={'kwargs': 4}" |
| 286 | assert foo(1, 2, kwargs=4, e=5) == "a=1, b=2, args=(), d=3, kwargs={'kwargs': 4, 'e': 5}" |
| 287 | |
| 288 | |
| 289 | def test_unpacked_typed_dict_kwargs_invalid_type() -> None: |
nothing calls this directly
no test coverage detected