Kaydet (Commit) 81ad8ccd authored tarafından Mark Dickinson's avatar Mark Dickinson

Output try-except-finally statements where appropriate.

üst 8d6d7604
......@@ -80,7 +80,18 @@ elif cond2:
suite2
"""
try_except_finally = """\
try:
suite1
except ex1:
suite2
except ex2:
suite3
else:
suite4
finally:
suite5
"""
class ASTTestCase(unittest.TestCase):
def assertASTEqual(self, ast1, ast2):
......@@ -181,6 +192,9 @@ class UnparseTestCase(ASTTestCase):
self.check_roundtrip(elif1)
self.check_roundtrip(elif2)
def test_try_except_finally(self):
self.check_roundtrip(try_except_finally)
class DirectoryTestCase(ASTTestCase):
"""Test roundtrip behaviour on all files in Lib and Lib/test."""
......
......@@ -169,10 +169,14 @@ class Unparser:
self.leave()
def _TryFinally(self, t):
self.fill("try")
self.enter()
self.dispatch(t.body)
self.leave()
if len(t.body) == 1 and isinstance(t.body[0], ast.TryExcept):
# try-except-finally
self.dispatch(t.body)
else:
self.fill("try")
self.enter()
self.dispatch(t.body)
self.leave()
self.fill("finally")
self.enter()
......
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