Fix usage of pytester with doctests (#6802)

Use `request.node.name` instead of `request.function.__name__`:
`request.function` is `None` with `DoctestItem`s.
This commit is contained in:
Daniel Hahler
2020-03-04 05:33:50 +01:00
committed by GitHub
parent 197b7c3bce
commit acec0b688f
3 changed files with 32 additions and 4 deletions

View File

@@ -89,6 +89,29 @@ def test_testdir_runs_with_plugin(testdir) -> None:
result.assert_outcomes(passed=1)
def test_testdir_with_doctest(testdir):
"""Check that testdir can be used within doctests.
It used to use `request.function`, which is `None` with doctests."""
testdir.makepyfile(
**{
"sub/t-doctest.py": """
'''
>>> import os
>>> testdir = getfixture("testdir")
>>> str(testdir.makepyfile("content")).replace(os.sep, '/')
'.../basetemp/sub.t-doctest0/sub.py'
'''
""",
"sub/__init__.py": "",
}
)
result = testdir.runpytest(
"-p", "pytester", "--doctest-modules", "sub/t-doctest.py"
)
assert result.ret == 0
def test_runresult_assertion_on_xfail(testdir) -> None:
testdir.makepyfile(
"""