summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_grammar.py
diff options
context:
space:
mode:
authorIrit Katriel <1055913+iritkatriel@users.noreply.github.com>2021-12-14 16:48:15 (GMT)
committerGitHub <noreply@github.com>2021-12-14 16:48:15 (GMT)
commitd60457a6673cf0263213c2f2be02c633ec2e2038 (patch)
tree04461db9079cf30a98c5a4070098f795275aa910 /Lib/test/test_grammar.py
parent850aefc2c651110a784cd5478af9774b1f6287a3 (diff)
downloadcpython-d60457a6673cf0263213c2f2be02c633ec2e2038.zip
cpython-d60457a6673cf0263213c2f2be02c633ec2e2038.tar.gz
cpython-d60457a6673cf0263213c2f2be02c633ec2e2038.tar.bz2
bpo-45292: [PEP-654] add except* (GH-29581)
Diffstat (limited to 'Lib/test/test_grammar.py')
-rw-r--r--Lib/test/test_grammar.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py
index b6c4574..a2460ad 100644
--- a/Lib/test/test_grammar.py
+++ b/Lib/test/test_grammar.py
@@ -1419,6 +1419,30 @@ class GrammarTests(unittest.TestCase):
compile("try:\n pass\nexcept Exception as a.b:\n pass", "?", "exec")
compile("try:\n pass\nexcept Exception as a[b]:\n pass", "?", "exec")
+ def test_try_star(self):
+ ### try_stmt: 'try': suite (except_star_clause : suite) + ['else' ':' suite]
+ ### except_star_clause: 'except*' expr ['as' NAME]
+ try:
+ 1/0
+ except* ZeroDivisionError:
+ pass
+ else:
+ pass
+ try: 1/0
+ except* EOFError: pass
+ except* ZeroDivisionError as msg: pass
+ else: pass
+ try: 1/0
+ except* (EOFError, TypeError, ZeroDivisionError): pass
+ try: 1/0
+ except* (EOFError, TypeError, ZeroDivisionError) as msg: pass
+ try: pass
+ finally: pass
+ with self.assertRaises(SyntaxError):
+ compile("try:\n pass\nexcept* Exception as a.b:\n pass", "?", "exec")
+ compile("try:\n pass\nexcept* Exception as a[b]:\n pass", "?", "exec")
+ compile("try:\n pass\nexcept*:\n pass", "?", "exec")
+
def test_suite(self):
# simple_stmt | NEWLINE INDENT NEWLINE* (stmt NEWLINE*)+ DEDENT
if 1: pass