diff options
author | Fred Drake <fdrake@acm.org> | 2000-12-11 22:12:09 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2000-12-11 22:12:09 (GMT) |
commit | e1578ce20464dfda61d3b113f95fd006783beed6 (patch) | |
tree | de0d1bd09385af6b87215afcc0a92f90a9e3b002 /Lib/test | |
parent | b6429a202011c92e34062930fc3e3818053a126d (diff) | |
download | cpython-e1578ce20464dfda61d3b113f95fd006783beed6.zip cpython-e1578ce20464dfda61d3b113f95fd006783beed6.tar.gz cpython-e1578ce20464dfda61d3b113f95fd006783beed6.tar.bz2 |
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')
-rw-r--r-- | Lib/test/output/test_parser | 14 | ||||
-rw-r--r-- | Lib/test/test_parser.py | 21 |
2 files changed, 34 insertions, 1 deletions
diff --git a/Lib/test/output/test_parser b/Lib/test/output/test_parser index 86ec22d..7558641 100644 --- a/Lib/test/output/test_parser +++ b/Lib/test/output/test_parser @@ -15,6 +15,18 @@ expr: foo(a, b, c, *args) expr: foo(a, b, c, *args, **kw) expr: foo(a, b, c, **kw) expr: foo + bar +expr: lambda: 0 +expr: lambda x: 0 +expr: lambda *y: 0 +expr: lambda *y, **z: 0 +expr: lambda **z: 0 +expr: lambda x, y: 0 +expr: lambda foo=bar: 0 +expr: lambda foo=bar, spaz=nifty+spit: 0 +expr: lambda foo=bar, **z: 0 +expr: lambda foo=bar, blaz=blat+2, **z: 0 +expr: lambda foo=bar, blaz=blat+2, *y, **z: 0 +expr: lambda x, *y, **z: 0 Statements: suite: print @@ -37,6 +49,8 @@ suite: a ^= b suite: a <<= b suite: a >>= b suite: a **= b +suite: def f(): pass +suite: def f(foo=bar): pass Invalid parse trees: diff --git a/Lib/test/test_parser.py b/Lib/test/test_parser.py index bc41de4..bb22f6a 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")) |