| 
									
										
										
										
											2004-07-12 13:15:56 +00:00
										 |  |  | import unittest | 
					
						
							|  |  |  | from test import test_support | 
					
						
							|  |  |  | from compiler import transformer, ast | 
					
						
							|  |  |  | from compiler import compile | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Tests(unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-07-18 06:16:08 +00: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) | 
					
						
							|  |  |  |             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 | 
					
						
							| 
									
										
										
										
											2004-07-12 13:15:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | def test_main(): | 
					
						
							| 
									
										
										
										
											2004-09-07 15:28:01 +00:00
										 |  |  |     test_support.run_unittest(Tests) | 
					
						
							| 
									
										
										
										
											2004-07-12 13:15:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     test_main() |