File: test_transformer.py

package info (click to toggle)
python2.4 2.4.4-3
  • links: PTS
  • area: main
  • in suites: etch-m68k
  • size: 44,624 kB
  • ctags: 86,948
  • sloc: ansic: 305,981; python: 271,903; makefile: 4,179; sh: 3,916; perl: 3,736; lisp: 3,678; xml: 894; objc: 756; cpp: 7; sed: 2
file content (35 lines) | stat: -rw-r--r-- 1,028 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import unittest
from test import test_support
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)
            assert isinstance(a, ast.Module)
            child1 = a.getChildNodes()[0]
            assert isinstance(child1, ast.Stmt)
            child2 = child1.getChildNodes()[0]
            assert isinstance(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()