Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | import unittest |
2 | from test import test_support | |
3 | from compiler import transformer, ast | |
4 | from compiler import compile | |
5 | ||
6 | class 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 | ||
31 | def test_main(): | |
32 | test_support.run_unittest(Tests) | |
33 | ||
34 | if __name__ == "__main__": | |
35 | test_main() |