summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShantanu <12621235+hauntsaninja@users.noreply.github.com>2022-07-26 09:43:09 (GMT)
committerGitHub <noreply@github.com>2022-07-26 09:43:09 (GMT)
commita5dde0fe4fa13b4ccfec4e27502b19bbbb7e5bb0 (patch)
treecd0b888ed9904ebd0ac665125a5aae9e6aa0a027
parent0d35a59ce3242b7326890a8c8cc41b321192ec9a (diff)
downloadcpython-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.py3
-rw-r--r--Lib/test/test_ast.py6
-rw-r--r--Misc/NEWS.d/next/Library/2022-07-20-22-49-48.gh-issue-95066.TuCu0E.rst1
3 files changed, 9 insertions, 1 deletions
diff --git a/Lib/ast.py b/Lib/ast.py
index 4e2ae85..ebf4529 100644
--- a/Lib/ast.py
+++ b/Lib/ast.py
@@ -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.