equal
deleted
inserted
replaced
|
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() |