PageRenderTime 344ms CodeModel.GetById 111ms app.highlight 4ms RepoModel.GetById 120ms app.codeStats 1ms

/Lib/test/test_transformer.py

http://unladen-swallow.googlecode.com/
Python | 35 lines | 25 code | 7 blank | 3 comment | 4 complexity | 458ea3aaa4d3c66f485691f7fc3cb0e0 MD5 | raw file
 1import unittest
 2from test import test_support
 3from compiler import transformer, ast
 4from compiler import compile
 5
 6class Tests(unittest.TestCase):
 7
 8    def testMultipleLHS(self):
 9        """ Test multiple targets on the left hand side. """
10
11        snippets = ['a, b = 1, 2',
12                    '(a, b) = 1, 2',
13                    '((a, b), c) = (1, 2), 3']
14
15        for s in snippets:
16            a = transformer.parse(s)
17            assert isinstance(a, ast.Module)
18            child1 = a.getChildNodes()[0]
19            assert isinstance(child1, ast.Stmt)
20            child2 = child1.getChildNodes()[0]
21            assert isinstance(child2, ast.Assign)
22
23            # This actually tests the compiler, but it's a way to assure the ast
24            # is correct
25            c = compile(s, '<string>', 'single')
26            vals = {}
27            exec c in vals
28            assert vals['a'] == 1
29            assert vals['b'] == 2
30
31def test_main():
32    test_support.run_unittest(Tests)
33
34if __name__ == "__main__":
35    test_main()