diff options
| author | Jeremy Hylton <jeremy@alum.mit.edu> | 2005-10-20 19:59:25 +0000 | 
|---|---|---|
| committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2005-10-20 19:59:25 +0000 | 
| commit | 3e0055f8c65c407e74ce476b8e2b1fb889723514 (patch) | |
| tree | 169cce8c87033e15364b57de947073e6e9c34d59 /Lib/test/test_parser.py | |
| parent | 2cb94aba122b86dcda87d437eb36a860d14393d5 (diff) | |
| download | cpython-git-3e0055f8c65c407e74ce476b8e2b1fb889723514.tar.gz | |
Merge ast-branch to head
This change implements a new bytecode compiler, based on a
transformation of the parse tree to an abstract syntax defined in
Parser/Python.asdl.
The compiler implementation is not complete, but it is in stable
enough shape to run the entire test suite excepting two disabled
tests.
Diffstat (limited to 'Lib/test/test_parser.py')
| -rw-r--r-- | Lib/test/test_parser.py | 24 | 
1 files changed, 23 insertions, 1 deletions
diff --git a/Lib/test/test_parser.py b/Lib/test/test_parser.py index d1ace674dc..771fe9db96 100644 --- a/Lib/test/test_parser.py +++ b/Lib/test/test_parser.py @@ -411,10 +411,32 @@ class IllegalSyntaxTestCase(unittest.TestCase):                  (0, ''))          self.check_bad_tree(tree, "malformed global ast") + +class CompileTestCase(unittest.TestCase): + +    # These tests are very minimal. :-( + +    def test_compile_expr(self): +        st = parser.expr('2 + 3') +        code = parser.compilest(st) +        self.assertEquals(eval(code), 5) + +    def test_compile_suite(self): +        st = parser.suite('x = 2; y = x + 3') +        code = parser.compilest(st) +        globs = {} +        exec code in globs +        self.assertEquals(globs['y'], 5) + +    def test_compile_error(self): +        st = parser.suite('1 = 3 + 4') +        self.assertRaises(SyntaxError, parser.compilest, st) +  def test_main():      test_support.run_unittest(          RoundtripLegalSyntaxTestCase, -        IllegalSyntaxTestCase +        IllegalSyntaxTestCase, +        CompileTestCase,      )  | 
