make sessionfinish hooks execute with the same cwd-context as at
session start (helps fix plugin behaviour which write output files with relative path such as pytest-cov)
This commit is contained in:
parent
2951c3ace9
commit
ac3d8800fd
|
@ -1,6 +1,10 @@
|
|||
Changes between 2.3.5 and 2.4.DEV
|
||||
-----------------------------------
|
||||
|
||||
- make sessionfinish hooks execute with the same cwd-context as at
|
||||
session start (helps fix plugin behaviour which write output files
|
||||
with relative path such as pytest-cov)
|
||||
|
||||
- fix issue316 - properly reference collection hooks in docs
|
||||
|
||||
- fix issue 308 - allow to mark/xfail/skip individual parameter sets
|
||||
|
|
|
@ -97,6 +97,7 @@ def wrap_session(config, doit):
|
|||
if session._testsfailed:
|
||||
session.exitstatus = EXIT_TESTSFAILED
|
||||
finally:
|
||||
session.startdir.chdir()
|
||||
if initstate >= 2:
|
||||
config.hook.pytest_sessionfinish(
|
||||
session=session,
|
||||
|
@ -452,6 +453,7 @@ class Session(FSCollector):
|
|||
self.shouldstop = False
|
||||
self.trace = config.trace.root.get("collection")
|
||||
self._norecursepatterns = config.getini("norecursedirs")
|
||||
self.startdir = py.path.local()
|
||||
|
||||
def pytest_collectstart(self):
|
||||
if self.shouldstop:
|
||||
|
|
|
@ -226,3 +226,17 @@ def test_exclude(testdir):
|
|||
assert result.ret == 0
|
||||
result.stdout.fnmatch_lines(["*1 passed*"])
|
||||
|
||||
def test_sessionfinish_with_start(testdir):
|
||||
testdir.makeconftest("""
|
||||
import os
|
||||
l = []
|
||||
def pytest_sessionstart():
|
||||
l.append(os.getcwd())
|
||||
os.chdir("..")
|
||||
|
||||
def pytest_sessionfinish():
|
||||
assert l[0] == os.getcwd()
|
||||
|
||||
""")
|
||||
res = testdir.runpytest("--collectonly")
|
||||
assert res.ret == 0
|
||||
|
|
Loading…
Reference in New Issue