Skip to content

Commit

Permalink
test/py: fix runtest wrapper for pytest 6
Browse files Browse the repository at this point in the history
The implementation of pytest_runtest_protocol() must call
pytest_runtest_logstart() and pytest_runtest_logfinish(). This appears to
be necessary even in pytest 5.2.1 judging by the default version of
pytest_runtest_protocol(), but evidently some form of code reorganization
in pytest only made this have a practical effect in the newer version. I'd
previously been under the impression that 100% of the required work of
pytest_runtest_protocol() was handled by the fact it called
runtestprotocol() as its implementation. However, it appears that custom
implementations do need to do a little more than this.

Reported-by: Heinrich Schuchardt <[email protected]>
Signed-off-by: Stephen Warren <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
  • Loading branch information
swarren authored and trini committed Feb 1, 2021
1 parent 9644bd0 commit 3724975
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion test/py/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,10 @@ def pytest_runtest_protocol(item, nextitem):
"""

log.get_and_reset_warning()
ihook = item.ihook
ihook.pytest_runtest_logstart(nodeid=item.nodeid, location=item.location)
reports = runtestprotocol(item, nextitem=nextitem)
ihook.pytest_runtest_logfinish(nodeid=item.nodeid, location=item.location)
was_warning = log.get_and_reset_warning()

# In pytest 3, runtestprotocol() may not call pytest_runtest_setup() if
Expand Down Expand Up @@ -623,4 +626,4 @@ def pytest_runtest_protocol(item, nextitem):
if failure_cleanup:
console.cleanup_spawn()

return reports
return True

0 comments on commit 3724975

Please sign in to comment.