@@ -10,11 +10,19 @@ def no_args():
1010else :
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
1421def one_arg (arg ):
15- pass
22+ return arg
1623
1724one_arg ('one_arg' )
25+ assert "arg" == one_arg (arg = "arg" )
1826
1927try :
2028 one_arg ()
@@ -23,19 +31,41 @@ def one_arg(arg):
2331else :
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+
2641try :
2742 one_arg ('one_arg' , 'two_arg' )
2843except TypeError :
2944 pass
3045else :
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
3463def one_default_arg (arg = "default" ):
3564 return arg
3665
3766assert 'default' == one_default_arg ()
3867assert 'arg' == one_default_arg ('arg' )
68+ assert 'kwarg' == one_default_arg (arg = 'kwarg' )
3969
4070try :
4171 one_default_arg ('one_arg' , 'two_arg' )
@@ -64,3 +94,18 @@ def one_normal_one_default_arg(pos, arg="default"):
6494 pass
6595else :
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