@@ -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
@@ -623,4 +626,4 @@ def pytest_runtest_protocol(item, nextitem):
if failure_cleanup:
console.cleanup_spawn()
- return reports
+ return True # reports
@@ -14,7 +14,7 @@ from pkg_resources import load_entry_point
# argv; py.test test_directory_name user-supplied-arguments
args = [os.path.dirname(__file__) + '/tests']
-args.extend(sys.argv)
+sys.argv[1:1] = args
if __name__ == '__main__':
- sys.exit(load_entry_point('pytest', 'console_scripts', 'pytest')(args))
+ sys.exit(load_entry_point('pytest', 'console_scripts', 'pytest')())
Two changes are needed to support pytest 6: 1) The main entry point no longer allows command-line arguments to be supplied. Instead, we must modify sys.argv before calling the entry point. pytest 5.1.2 (from the current requirements.txt) supports either modifying sys.argv, or passing arguments, so is compatible with this change. 2) The implementation of pytest_runtest_protocol() must call pytest_runtest_logstart() and pytest_runtest_logfinish(). This appears to be necessary even in pytest 5.1.2 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 <xypron.glpk@gmx.de> (point 2) Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> --- test/py/conftest.py | 5 ++++- test/py/test.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-)