summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_codeop.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_codeop.py')
-rw-r--r--Lib/test/test_codeop.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/Lib/test/test_codeop.py b/Lib/test/test_codeop.py
index e3c3822..2abb6c6 100644
--- a/Lib/test/test_codeop.py
+++ b/Lib/test/test_codeop.py
@@ -5,6 +5,7 @@
import unittest
import warnings
from test.support import warnings_helper
+from textwrap import dedent
from codeop import compile_command, PyCF_DONT_IMPLY_DEDENT
@@ -308,6 +309,19 @@ class CodeopTests(unittest.TestCase):
self.assertRegex(str(w[0].message), 'invalid escape sequence')
self.assertEqual(w[0].filename, '<input>')
+ def assertSyntaxErrorMatches(self, code, message):
+ with self.subTest(code):
+ with self.assertRaisesRegex(SyntaxError, message):
+ compile_command(code, symbol='exec')
+
+ def test_syntax_errors(self):
+ self.assertSyntaxErrorMatches(
+ dedent("""\
+ def foo(x,x):
+ pass
+ """), "duplicate argument 'x' in function definition")
+
+
if __name__ == "__main__":
unittest.main()