blob: 9b5994d3c9c03d2feff2fb6fe6d4b03ecc64cf31 [file] [log] [blame]
Jeremy Hyltonaed0d8d2000-03-28 23:51:17 +00001from UserList import UserList
2
3def f(*a, **k):
4 print a, k
5
6def g(x, *y, **z):
7 print x, y, z
8
9def h(j=1, a=2, h=3):
10 print j, a, h
11
12f()
13f(1)
14f(1, 2)
15f(1, 2, 3)
16
17f(1, 2, 3, *(4, 5))
18f(1, 2, 3, *[4, 5])
Jeremy Hylton003663d2000-03-28 23:53:22 +000019f(1, 2, 3, *UserList([4, 5]))
Jeremy Hyltonaed0d8d2000-03-28 23:51:17 +000020f(1, 2, 3, **{'a':4, 'b':5})
21f(1, 2, 3, *(4, 5), **{'a':6, 'b':7})
22f(1, 2, 3, x=4, y=5, *(6, 7), **{'a':8, 'b':9})
23
24try:
25 g()
26except TypeError, err:
27 print "TypeError:", err
28else:
29 print "should raise TypeError: not enough arguments; expected 1, got 0"
30
31try:
32 g(*())
33except TypeError, err:
34 print "TypeError:", err
35else:
36 print "should raise TypeError: not enough arguments; expected 1, got 0"
37
38try:
39 g(*(), **{})
40except TypeError, err:
41 print "TypeError:", err
42else:
43 print "should raise TypeError: not enough arguments; expected 1, got 0"
44
45g(1)
46g(1, 2)
47g(1, 2, 3)
48g(1, 2, 3, *(4, 5))
49try:
50 g(1, 2, 3, **{'x':4, 'y':5})
51except TypeError, err:
52 print err
53else:
54 print "should raise TypeError: keyword parameter redefined"
55
56try:
57 g(1, 2, 3, a=4, b=5, *(6, 7), **{'a':8, 'b':9})
58except TypeError, err:
59 print err
60else:
61 print "should raise TypeError: keyword parameter redefined"
62
63try:
64 f(**{1:2})
65except TypeError, err:
66 print err
67else:
68 print "should raise TypeError: keywords must be strings"
69
70try:
71 h(**{'e': 2})
72except TypeError, err:
73 print err
74else:
75 print "should raise TypeError: unexpected keyword argument: e"
76
77try:
78 h(*h)
79except TypeError, err:
80 print err
81else:
82 print "should raise TypeError: * argument must be a tuple"
83
84try:
85 h(**h)
86except TypeError, err:
87 print err
88else:
89 print "should raise TypeError: ** argument must be a dictionary"
90
91def f2(*a, **b):
92 return a, b
93
94d = {}
95for i in range(512):
96 key = 'k%d' % i
97 d[key] = i
98a, b = f2(1, *(2, 3), **d)
99print len(a), len(b), b == d