Skip to content

Commit 67b7cc2

Browse files
committed
Expand function snippet tests for kwargs
1 parent 003f99c commit 67b7cc2

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

tests/snippets/func_defaults.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,19 @@ def no_args():
1010
else:
1111
assert False, 'no TypeError raised: 1 arg to no_args'
1212

13+
try:
14+
no_args(kw='should fail')
15+
except TypeError:
16+
pass
17+
else:
18+
assert False, 'no TypeError raised: kwarg to no_args'
19+
1320

1421
def one_arg(arg):
15-
pass
22+
return arg
1623

1724
one_arg('one_arg')
25+
assert "arg" == one_arg(arg="arg")
1826

1927
try:
2028
one_arg()
@@ -23,19 +31,41 @@ def one_arg(arg):
2331
else:
2432
assert False, 'no TypeError raised: no args to one_arg'
2533

34+
try:
35+
one_arg(wrong_arg='wont work')
36+
except TypeError:
37+
pass
38+
else:
39+
assert False, 'no TypeError raised: incorrect kwarg to one_arg'
40+
2641
try:
2742
one_arg('one_arg', 'two_arg')
2843
except TypeError:
2944
pass
3045
else:
3146
assert False, 'no TypeError raised: two args to one_arg'
3247

48+
try:
49+
one_arg('one_arg', extra_arg='wont work')
50+
except TypeError:
51+
pass
52+
else:
53+
assert False, 'no TypeError raised: extra kwarg to one_arg'
54+
55+
try:
56+
one_arg('one_arg', arg='duplicate')
57+
except TypeError:
58+
pass
59+
else:
60+
assert False, 'no TypeError raised: same pos and kwarg to one_arg'
61+
3362

3463
def one_default_arg(arg="default"):
3564
return arg
3665

3766
assert 'default' == one_default_arg()
3867
assert 'arg' == one_default_arg('arg')
68+
assert 'kwarg' == one_default_arg(arg='kwarg')
3969

4070
try:
4171
one_default_arg('one_arg', 'two_arg')
@@ -64,3 +94,18 @@ def one_normal_one_default_arg(pos, arg="default"):
6494
pass
6595
else:
6696
assert False, 'no TypeError raised: three args to one_normal_one_default_arg'
97+
98+
99+
def two_pos(a, b):
100+
return (a, b)
101+
102+
assert ('a', 'b') == two_pos('a', 'b')
103+
assert ('a', 'b') == two_pos(b='b', a='a')
104+
105+
106+
def kwargs_are_variable(x=[]):
107+
x.append(1)
108+
return x
109+
110+
assert [1] == kwargs_are_variable()
111+
assert [1, 1] == kwargs_are_variable()

0 commit comments

Comments
 (0)