SF patch #103749: implicit tuple + default arg

This commit is contained in:
Jeremy Hylton 2001-02-19 23:53:42 +00:00
parent 2b3f0ca2ac
commit 121b6eb018
2 changed files with 40 additions and 3 deletions

View File

@ -1 +1,8 @@
test_compile
testing complex args
1 2
1 2
3 4
1 2 3
1 2 3
2 3 4

View File

@ -4,19 +4,49 @@ if verbose:
print 'Running tests on argument handling'
try:
exec('def f(a, a): pass')
exec 'def f(a, a): pass'
raise TestFailed, "duplicate arguments"
except SyntaxError:
pass
try:
exec('def f(a = 0, a = 1): pass')
exec 'def f(a = 0, a = 1): pass'
raise TestFailed, "duplicate keyword arguments"
except SyntaxError:
pass
try:
exec('def f(a): global a; a = 1')
exec 'def f(a): global a; a = 1'
raise TestFailed, "variable is global and local"
except SyntaxError:
pass
print "testing complex args"
def comp_args((a, b)):
print a,b
comp_args((1, 2))
def comp_args((a, b)=(3, 4)):
print a, b
comp_args((1, 2))
comp_args()
def comp_args(a, (b, c)):
print a, b, c
comp_args(1, (2, 3))
def comp_args(a=2, (b, c)=(3, 4)):
print a, b, c
comp_args(1, (2, 3))
comp_args()
try:
exec 'def f(a=1, (b, c)): pass'
raise TestFailed, "non-default args after default"
except SyntaxError:
pass