Updated for 2.1b2 distribution.
[python/dscho.git] / Lib / test / test_compile.py
blob17d35006ea5fc710c9c37151cb1e7d1c9a5730dd
1 from test_support import verbose, TestFailed
3 if verbose:
4 print 'Running tests on argument handling'
6 try:
7 exec 'def f(a, a): pass'
8 raise TestFailed, "duplicate arguments"
9 except SyntaxError:
10 pass
12 try:
13 exec 'def f(a = 0, a = 1): pass'
14 raise TestFailed, "duplicate keyword arguments"
15 except SyntaxError:
16 pass
18 try:
19 exec 'def f(a): global a; a = 1'
20 raise TestFailed, "variable is global and local"
21 except SyntaxError:
22 pass
24 print "testing complex args"
26 def comp_args((a, b)):
27 print a,b
29 comp_args((1, 2))
31 def comp_args((a, b)=(3, 4)):
32 print a, b
34 comp_args((1, 2))
35 comp_args()
37 def comp_args(a, (b, c)):
38 print a, b, c
40 comp_args(1, (2, 3))
42 def comp_args(a=2, (b, c)=(3, 4)):
43 print a, b, c
45 comp_args(1, (2, 3))
46 comp_args()
48 try:
49 exec 'def f(a=1, (b, c)): pass'
50 raise TestFailed, "non-default args after default"
51 except SyntaxError:
52 pass