summaryrefslogtreecommitdiff
path: root/Lib/test/test_parser.py
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2000-12-11 22:12:09 +0000
committerFred Drake <fdrake@acm.org>2000-12-11 22:12:09 +0000
commitd6a64373cdcf132f46eafaa9c923d7b87d3c9ef0 (patch)
tree9dcef13ed375dbb9e94d3e679d6eda20eae918dd /Lib/test/test_parser.py
parente88c42cd09a9ca86ba700cb2dd893df1218dabc8 (diff)
downloadcpython-d6a64373cdcf132f46eafaa9c923d7b87d3c9ef0.tar.gz
Added tests to avoid regression on bug #125375.
roundtrip(): Show the offending syntax tree when things break; this makes it a little easier to debug the module by adding test cases. (Still need better tests for this module, but there's not enough time today.)
Diffstat (limited to 'Lib/test/test_parser.py')
-rw-r--r--Lib/test/test_parser.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/Lib/test/test_parser.py b/Lib/test/test_parser.py
index bc41de4267..bb22f6a710 100644
--- a/Lib/test/test_parser.py
+++ b/Lib/test/test_parser.py
@@ -15,7 +15,12 @@ from test_support import verbose
def roundtrip(f, s):
st1 = f(s)
t = st1.totuple()
- st2 = parser.sequence2ast(t)
+ try:
+ st2 = parser.sequence2ast(t)
+ except parser.ParserError:
+ print "Failing syntax tree:"
+ pprint.pprint(t)
+ raise
def roundtrip_fromfile(filename):
roundtrip(suite, open(filename).read())
@@ -46,6 +51,18 @@ test_expr("foo(a, b, c, *args)")
test_expr("foo(a, b, c, *args, **kw)")
test_expr("foo(a, b, c, **kw)")
test_expr("foo + bar")
+test_expr("lambda: 0")
+test_expr("lambda x: 0")
+test_expr("lambda *y: 0")
+test_expr("lambda *y, **z: 0")
+test_expr("lambda **z: 0")
+test_expr("lambda x, y: 0")
+test_expr("lambda foo=bar: 0")
+test_expr("lambda foo=bar, spaz=nifty+spit: 0")
+test_expr("lambda foo=bar, **z: 0")
+test_expr("lambda foo=bar, blaz=blat+2, **z: 0")
+test_expr("lambda foo=bar, blaz=blat+2, *y, **z: 0")
+test_expr("lambda x, *y, **z: 0")
print
print "Statements:"
@@ -71,6 +88,8 @@ test_suite("a ^= b")
test_suite("a <<= b")
test_suite("a >>= b")
test_suite("a **= b")
+test_suite("def f(): pass")
+test_suite("def f(foo=bar): pass")
#d = os.path.dirname(os.__file__)
#roundtrip_fromfile(os.path.join(d, "os.py"))