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() |