Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit03017a8

Browse files
gh-136438: Make suretest_ast pass with all optimization levels (#136596)
Explicitly pass an `optimizer` parameter to the calls of `ast.parse/compile`, because if it is not provided, the interpreter will use its internal state, which can be modified using the `-O` or `-OO` flags.Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
1 parent28937d3 commit03017a8

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

‎Lib/test/test_ast/test_ast.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ def test_snippets(self):
131131
(eval_tests,eval_results,"eval")):
132132
fori,oinzip(input,output):
133133
withself.subTest(action="parsing",input=i):
134-
ast_tree=compile(i,"?",kind,ast.PyCF_ONLY_AST)
134+
ast_tree=compile(i,"?",kind,ast.PyCF_ONLY_AST,optimize=False)
135135
self.assertEqual(to_tuple(ast_tree),o)
136136
self._assertTrueorder(ast_tree, (0,0))
137137
withself.subTest(action="compiling",input=i,kind=kind):
@@ -141,7 +141,7 @@ def test_ast_validation(self):
141141
# compile() is the only function that calls PyAST_Validate
142142
snippets_to_validate=exec_tests+single_tests+eval_tests
143143
forsnippetinsnippets_to_validate:
144-
tree=ast.parse(snippet)
144+
tree=ast.parse(snippet,optimize=False)
145145
compile(tree,'<string>','exec')
146146

147147
deftest_parse_invalid_ast(self):
@@ -923,7 +923,7 @@ def test_repr(self) -> None:
923923
snapshots=AST_REPR_DATA_FILE.read_text().split("\n")
924924
fortest,snapshotinzip(ast_repr_get_test_cases(),snapshots,strict=True):
925925
withself.subTest(test_input=test):
926-
self.assertEqual(repr(ast.parse(test)),snapshot)
926+
self.assertEqual(repr(ast.parse(test,optimize=False)),snapshot)
927927

928928
deftest_repr_large_input_crash(self):
929929
# gh-125010: Fix use-after-free in ast repr()
@@ -1698,22 +1698,22 @@ def test_iter_child_nodes(self):
16981698
)
16991699

17001700
deftest_get_docstring(self):
1701-
node=ast.parse('"""line one\n line two"""')
1701+
node=ast.parse('"""line one\n line two"""',optimize=False)
17021702
self.assertEqual(ast.get_docstring(node),
17031703
'line one\nline two')
17041704

1705-
node=ast.parse('class foo:\n """line one\n line two"""')
1705+
node=ast.parse('class foo:\n """line one\n line two"""',optimize=False)
17061706
self.assertEqual(ast.get_docstring(node.body[0]),
17071707
'line one\nline two')
17081708

1709-
node=ast.parse('def foo():\n """line one\n line two"""')
1709+
node=ast.parse('def foo():\n """line one\n line two"""',optimize=False)
17101710
self.assertEqual(ast.get_docstring(node.body[0]),
17111711
'line one\nline two')
17121712

1713-
node=ast.parse('async def foo():\n """spam\n ham"""')
1713+
node=ast.parse('async def foo():\n """spam\n ham"""',optimize=False)
17141714
self.assertEqual(ast.get_docstring(node.body[0]),'spam\nham')
17151715

1716-
node=ast.parse('async def foo():\n """spam\n ham"""')
1716+
node=ast.parse('async def foo():\n """spam\n ham"""',optimize=False)
17171717
self.assertEqual(ast.get_docstring(node.body[0],clean=False),'spam\n ham')
17181718

17191719
node=ast.parse('x')
@@ -1752,7 +1752,8 @@ def test_multi_line_docstring_col_offset_and_lineno_issue16806(self):
17521752
'def foo():\n """line one\n line two"""\n\n'
17531753
' def bar():\n """line one\n line two"""\n'
17541754
' """line one\n line two"""\n'
1755-
'"""line one\nline two"""\n\n'
1755+
'"""line one\nline two"""\n\n',
1756+
optimize=False
17561757
)
17571758
self.assertEqual(node.body[0].col_offset,0)
17581759
self.assertEqual(node.body[0].lineno,1)
@@ -2321,9 +2322,9 @@ def test_stdlib_validates(self):
23212322
fn=os.path.join(STDLIB,module)
23222323
withopen(fn,"r",encoding="utf-8")asfp:
23232324
source=fp.read()
2324-
mod=ast.parse(source,fn)
2325+
mod=ast.parse(source,fn,optimize=False)
23252326
compile(mod,fn,"exec")
2326-
mod2=ast.parse(source,fn)
2327+
mod2=ast.parse(source,fn,optimize=False)
23272328
self.assertTrue(ast.compare(mod,mod2))
23282329

23292330
constant_1=ast.Constant(1)
@@ -2537,7 +2538,7 @@ def test_assign_to_constant(self):
25372538
"to in Store context")
25382539

25392540
deftest_get_docstring(self):
2540-
tree=ast.parse("'docstring'\nx = 1")
2541+
tree=ast.parse("'docstring'\nx = 1",optimize=False)
25412542
self.assertEqual(ast.get_docstring(tree),'docstring')
25422543

25432544
defget_load_const(self,tree):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp