]> granicus.if.org Git - python/commitdiff
Test for correct compilation of try-except-finally stmt.
authorGeorg Brandl <georg@python.org>
Thu, 22 Jun 2006 14:46:46 +0000 (14:46 +0000)
committerGeorg Brandl <georg@python.org>
Thu, 22 Jun 2006 14:46:46 +0000 (14:46 +0000)
Test for correct lineno on list, tuple, dict literals.

Lib/test/test_compiler.py

index 6fb20c8bf295f26bc6f218a763520b3aae286f4b..17f181ee41c2396861a299183ebfef408381bdc0 100644 (file)
@@ -56,6 +56,15 @@ class CompilerTest(unittest.TestCase):
     def testYieldExpr(self):
         compiler.compile("def g(): yield\n\n", "<string>", "exec")
 
+    def testTryExceptFinally(self):
+        # Test that except and finally clauses in one try stmt are recognized
+        c = compiler.compile("try:\n 1/0\nexcept:\n e = 1\nfinally:\n f = 1",
+                             "<string>", "exec")
+        dct = {}
+        exec c in dct
+        self.assertEquals(dct.get('e'), 1)
+        self.assertEquals(dct.get('f'), 1)
+
     def testDefaultArgs(self):
         self.assertRaises(SyntaxError, compiler.parse, "def foo(a=1, b): pass")
 
@@ -103,6 +112,12 @@ a, b = 2, 3
 l = [(x, y) for x, y in zip(range(5), range(5,10))]
 l[0]
 l[3:4]
+d = {'a': 2}
+d = {}
+t = ()
+t = (1, 2)
+l = []
+l = [1, 2]
 if l:
     pass
 else: