2004-07-12 10:15:56 -03:00
|
|
|
import unittest
|
|
|
|
from test import test_support
|
|
|
|
from compiler import transformer, ast
|
|
|
|
from compiler import compile
|
|
|
|
|
|
|
|
class Tests(unittest.TestCase):
|
|
|
|
|
2004-07-18 03:16:08 -03:00
|
|
|
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)
|
2010-01-24 12:58:36 -04:00
|
|
|
self.assertIsInstance(a, ast.Module)
|
2004-07-18 03:16:08 -03:00
|
|
|
child1 = a.getChildNodes()[0]
|
2010-01-24 12:58:36 -04:00
|
|
|
self.assertIsInstance(child1, ast.Stmt)
|
2004-07-18 03:16:08 -03:00
|
|
|
child2 = child1.getChildNodes()[0]
|
2010-01-24 12:58:36 -04:00
|
|
|
self.assertIsInstance(child2, ast.Assign)
|
2004-07-18 03:16:08 -03:00
|
|
|
|
|
|
|
# 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
|
2004-07-12 10:15:56 -03:00
|
|
|
|
|
|
|
def test_main():
|
2004-09-07 12:28:01 -03:00
|
|
|
test_support.run_unittest(Tests)
|
2004-07-12 10:15:56 -03:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
test_main()
|