@@ -10,11 +10,19 @@ def no_args():
10
10
else :
11
11
assert False , 'no TypeError raised: 1 arg to no_args'
12
12
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
+
13
20
14
21
def one_arg (arg ):
15
- pass
22
+ return arg
16
23
17
24
one_arg ('one_arg' )
25
+ assert "arg" == one_arg (arg = "arg" )
18
26
19
27
try :
20
28
one_arg ()
@@ -23,19 +31,41 @@ def one_arg(arg):
23
31
else :
24
32
assert False , 'no TypeError raised: no args to one_arg'
25
33
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
+
26
41
try :
27
42
one_arg ('one_arg' , 'two_arg' )
28
43
except TypeError :
29
44
pass
30
45
else :
31
46
assert False , 'no TypeError raised: two args to one_arg'
32
47
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
+
33
62
34
63
def one_default_arg (arg = "default" ):
35
64
return arg
36
65
37
66
assert 'default' == one_default_arg ()
38
67
assert 'arg' == one_default_arg ('arg' )
68
+ assert 'kwarg' == one_default_arg (arg = 'kwarg' )
39
69
40
70
try :
41
71
one_default_arg ('one_arg' , 'two_arg' )
@@ -64,3 +94,18 @@ def one_normal_one_default_arg(pos, arg="default"):
64
94
pass
65
95
else :
66
96
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