diff options
author | Shantanu <12621235+hauntsaninja@users.noreply.github.com> | 2022-07-26 09:43:09 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-26 09:43:09 (GMT) |
commit | a5dde0fe4fa13b4ccfec4e27502b19bbbb7e5bb0 (patch) | |
tree | cd0b888ed9904ebd0ac665125a5aae9e6aa0a027 | |
parent | 0d35a59ce3242b7326890a8c8cc41b321192ec9a (diff) | |
download | cpython-a5dde0fe4fa13b4ccfec4e27502b19bbbb7e5bb0.zip cpython-a5dde0fe4fa13b4ccfec4e27502b19bbbb7e5bb0.tar.gz cpython-a5dde0fe4fa13b4ccfec4e27502b19bbbb7e5bb0.tar.bz2 |
gh-95066: ast: Replace assert with ValueError (GH-95072)
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
-rw-r--r-- | Lib/ast.py | 3 | ||||
-rw-r--r-- | Lib/test/test_ast.py | 6 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst | 1 |
3 files changed, 9 insertions, 1 deletions
@@ -42,7 +42,8 @@ def parse(source, filename='<unknown>', mode='exec', *, flags |= PyCF_TYPE_COMMENTS if isinstance(feature_version, tuple): major, minor = feature_version # Should be a 2-tuple. - assert major == 3 + if major != 3: + raise ValueError(f"Unsupported major version: {major}") feature_version = minor elif feature_version is None: feature_version = -1 diff --git a/Lib/test/test_ast.py b/Lib/test/test_ast.py index 9734218..de34ccf 100644 --- a/Lib/test/test_ast.py +++ b/Lib/test/test_ast.py @@ -756,6 +756,12 @@ class AST_Tests(unittest.TestCase): with self.assertRaises(SyntaxError): ast.parse('(x := 0)', feature_version=(3, 7)) + def test_invalid_major_feature_version(self): + with self.assertRaises(ValueError): + ast.parse('pass', feature_version=(2, 7)) + with self.assertRaises(ValueError): + ast.parse('pass', feature_version=(4, 0)) + def test_constant_as_name(self): for constant in "True", "False", "None": expr = ast.Expression(ast.Name(constant, ast.Load())) diff --git a/Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst b/Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst new file mode 100644 index 0000000..05ae4a6 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst @@ -0,0 +1 @@ +Replaced assert with exception in :func:`ast.parse`, when ``feature_version`` has an invalid major version. Patch by Shantanu Jain. |