| import unittest | |
| from test import test_support | |
| # Silence Py3k warning | |
| test_support.import_module('compiler', deprecated=True) | |
| from compiler import transformer, ast | |
| from compiler import compile | |
| class Tests(unittest.TestCase): | |
| def testMultipleLHS(self): | |
| """ Test multiple targets on the left hand side. """ | |
| snippets = ['a, b = 1, 2', | |
| '(a, b) = 1, 2', | |
| '((a, b), c) = (1, 2), 3'] | |
| for s in snippets: | |
| a = transformer.parse(s) | |
| self.assertIsInstance(a, ast.Module) | |
| child1 = a.getChildNodes()[0] | |
| self.assertIsInstance(child1, ast.Stmt) | |
| child2 = child1.getChildNodes()[0] | |
| self.assertIsInstance(child2, ast.Assign) | |
| # This actually tests the compiler, but it's a way to assure the ast | |
| # is correct | |
| c = compile(s, '<string>', 'single') | |
| vals = {} | |
| exec c in vals | |
| assert vals['a'] == 1 | |
| assert vals['b'] == 2 | |
| def test_main(): | |
| test_support.run_unittest(Tests) | |
| if __name__ == "__main__": | |
| test_main() |