]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
SF patch [ #468662 ] Allow jython to complete test_grammar
authorJeremy Hylton <jeremy@alum.mit.edu>
Wed, 10 Oct 2001 01:45:02 +0000 (01:45 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Wed, 10 Oct 2001 01:45:02 +0000 (01:45 +0000)
The behavior of co_varnames in the presence of nested argument tuples
is not consistent across Python and Jython.  Test each platform
separately.

Lib/test/test_grammar.py

index 7ce8a79e51133bd13a971ae0ac77b205894748e3..da3dad529c122bbfab297772a9f169102de3dcfe 100644 (file)
@@ -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()