test_compile.py revision 9aa70d93aae89a9404a58f32f3fcd3c72b1ee56b
1from test_support import verbose, TestFailed 2 3if verbose: 4 print 'Running tests on argument handling' 5 6try: 7 exec 'def f(a, a): pass' 8 raise TestFailed, "duplicate arguments" 9except SyntaxError: 10 pass 11 12try: 13 exec 'def f(a = 0, a = 1): pass' 14 raise TestFailed, "duplicate keyword arguments" 15except SyntaxError: 16 pass 17 18try: 19 exec 'def f(a): global a; a = 1' 20 raise TestFailed, "variable is global and local" 21except SyntaxError: 22 pass 23 24print "testing complex args" 25 26def comp_args((a, b)): 27 print a,b 28 29comp_args((1, 2)) 30 31def comp_args((a, b)=(3, 4)): 32 print a, b 33 34comp_args((1, 2)) 35comp_args() 36 37def comp_args(a, (b, c)): 38 print a, b, c 39 40comp_args(1, (2, 3)) 41 42def comp_args(a=2, (b, c)=(3, 4)): 43 print a, b, c 44 45comp_args(1, (2, 3)) 46comp_args() 47 48try: 49 exec 'def f(a=1, (b, c)): pass' 50 raise TestFailed, "non-default args after default" 51except SyntaxError: 52 pass 53 54if verbose: 55 print "testing bad float literals" 56 57def expect_error(s): 58 try: 59 eval(s) 60 raise TestFailed("%r accepted" % s) 61 except SyntaxError: 62 pass 63 64expect_error("2e") 65expect_error("2.0e+") 66expect_error("1e-") 67expect_error("3-4e/21") 68