Commit f57c54db authored by Georg Brandl's avatar Georg Brandl

Test for correct compilation of try-except-finally stmt.

Test for correct lineno on list, tuple, dict literals.
parent c3f49ca5
...@@ -56,6 +56,15 @@ class CompilerTest(unittest.TestCase): ...@@ -56,6 +56,15 @@ class CompilerTest(unittest.TestCase):
def testYieldExpr(self): def testYieldExpr(self):
compiler.compile("def g(): yield\n\n", "<string>", "exec") 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): def testDefaultArgs(self):
self.assertRaises(SyntaxError, compiler.parse, "def foo(a=1, b): pass") self.assertRaises(SyntaxError, compiler.parse, "def foo(a=1, b): pass")
...@@ -103,6 +112,12 @@ a, b = 2, 3 ...@@ -103,6 +112,12 @@ a, b = 2, 3
l = [(x, y) for x, y in zip(range(5), range(5,10))] l = [(x, y) for x, y in zip(range(5), range(5,10))]
l[0] l[0]
l[3:4] l[3:4]
d = {'a': 2}
d = {}
t = ()
t = (1, 2)
l = []
l = [1, 2]
if l: if l:
pass pass
else: else:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment