mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
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, vals)
 | 
						|
            assert vals['a'] == 1
 | 
						|
            assert vals['b'] == 2
 | 
						|
 | 
						|
def test_main():
 | 
						|
    test_support.run_unittest(Tests)
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    test_main()
 |