mirror of https://github.com/pytest-dev/pytest.git
Merge pull request #11751 from bluetech/backport-11143-to-7.4.x
(cherry picked from commit 084d756ae6
)
[ran: adapted to 7.4.x, fixed changelog issue number]
This commit is contained in:
commit
76c107c463
1
AUTHORS
1
AUTHORS
|
@ -377,6 +377,7 @@ Tomer Keren
|
|||
Tony Narlock
|
||||
Tor Colvin
|
||||
Trevor Bekolay
|
||||
Tushar Sadhwani
|
||||
Tyler Goodlet
|
||||
Tyler Smart
|
||||
Tzu-ping Chung
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Fix non-string constants at the top of file being detected as docstrings on Python>=3.8.
|
|
@ -604,6 +604,13 @@ def _get_assertion_exprs(src: bytes) -> Dict[int, str]:
|
|||
return ret
|
||||
|
||||
|
||||
def _get_ast_constant_value(value: astStr) -> object:
|
||||
if sys.version_info >= (3, 8):
|
||||
return value.value
|
||||
else:
|
||||
return value.s
|
||||
|
||||
|
||||
class AssertionRewriter(ast.NodeVisitor):
|
||||
"""Assertion rewriting implementation.
|
||||
|
||||
|
@ -700,11 +707,10 @@ class AssertionRewriter(ast.NodeVisitor):
|
|||
expect_docstring
|
||||
and isinstance(item, ast.Expr)
|
||||
and isinstance(item.value, astStr)
|
||||
and isinstance(_get_ast_constant_value(item.value), str)
|
||||
):
|
||||
if sys.version_info >= (3, 8):
|
||||
doc = item.value.value
|
||||
else:
|
||||
doc = item.value.s
|
||||
doc = _get_ast_constant_value(item.value)
|
||||
assert isinstance(doc, str)
|
||||
if self.is_rewrite_disabled(doc):
|
||||
return
|
||||
expect_docstring = False
|
||||
|
|
|
@ -2096,3 +2096,17 @@ class TestReprSizeVerbosity:
|
|||
self.create_test_file(pytester, DEFAULT_REPR_MAX_SIZE * 10)
|
||||
result = pytester.runpytest("-vv")
|
||||
result.stdout.no_fnmatch_line("*xxx...xxx*")
|
||||
|
||||
|
||||
class TestIssue11140:
|
||||
def test_constant_not_picked_as_module_docstring(self, pytester: Pytester) -> None:
|
||||
pytester.makepyfile(
|
||||
"""\
|
||||
0
|
||||
|
||||
def test_foo():
|
||||
pass
|
||||
"""
|
||||
)
|
||||
result = pytester.runpytest()
|
||||
assert result.ret == 0
|
||||
|
|
Loading…
Reference in New Issue