SF patch [ #468662 ] Allow jython to complete test_grammar
The behavior of co_varnames in the presence of nested argument tuples is not consistent across Python and Jython. Test each platform separately.
This commit is contained in:
parent
e67dab3d3f
commit
7d3dff2b39
|
@ -2,6 +2,7 @@
|
|||
# This just tests whether the parser accepts them all.
|
||||
|
||||
from test_support import *
|
||||
import sys
|
||||
|
||||
print '1. Parser'
|
||||
|
||||
|
@ -149,16 +150,25 @@ def f4(two, (compound, (argument, list))): pass
|
|||
def f5((compound, first), two): pass
|
||||
verify(f2.func_code.co_varnames == ('one_argument',))
|
||||
verify(f3.func_code.co_varnames == ('two', 'arguments'))
|
||||
verify(f4.func_code.co_varnames == ('two', '.2', 'compound', 'argument',
|
||||
'list'))
|
||||
verify(f5.func_code.co_varnames == ('.0', 'two', 'compound', 'first'))
|
||||
if sys.platform.startswith('java'):
|
||||
verify(f4.func_code.co_varnames ==
|
||||
('two', '(compound, (argument, list))',))
|
||||
verify(f5.func_code.co_varnames ==
|
||||
('(compound, first)', 'two', 'compound', 'first'))
|
||||
else:
|
||||
verify(f4.func_code.co_varnames == ('two', '.2', 'compound',
|
||||
'argument', 'list'))
|
||||
verify(f5.func_code.co_varnames == ('.0', 'two', 'compound', 'first'))
|
||||
def a1(one_arg,): pass
|
||||
def a2(two, args,): pass
|
||||
def v0(*rest): pass
|
||||
def v1(a, *rest): pass
|
||||
def v2(a, b, *rest): pass
|
||||
def v3(a, (b, c), *rest): return a, b, c, rest
|
||||
verify(v3.func_code.co_varnames == ('a', '.2', 'rest', 'b', 'c'))
|
||||
if sys.platform.startswith('java'):
|
||||
verify(v3.func_code.co_varnames == ('a', '(b, c)', 'rest', 'b', 'c'))
|
||||
else:
|
||||
verify(v3.func_code.co_varnames == ('a', '.2', 'rest', 'b', 'c'))
|
||||
verify(v3(1, (2, 3), 4) == (1, 2, 3, (4,)))
|
||||
def d01(a=1): pass
|
||||
d01()
|
||||
|
|
Loading…
Reference in New Issue