Merged in nicoddemus/pytest/pastebin-xdist (pull request #239)

Using pytest-xdist and --paste=all results in error
This commit is contained in:
holger krekel 2015-01-19 22:34:43 +01:00
commit 394367e1d2
1 changed files with 10 additions and 6 deletions

View File

@ -14,13 +14,17 @@ def pytest_addoption(parser):
@pytest.mark.trylast
def pytest_configure(config):
if config.option.pastebin == "all":
config._pastebinfile = tempfile.TemporaryFile('w+')
tr = config.pluginmanager.getplugin('terminalreporter')
oldwrite = tr._tw.write
def tee_write(s, **kwargs):
oldwrite(s, **kwargs)
config._pastebinfile.write(str(s))
tr._tw.write = tee_write
# if no terminal reporter plugin is present, nothing we can do here;
# this can happen when this function executes in a slave node
# when using pytest-xdist, for example
if tr is not None:
config._pastebinfile = tempfile.TemporaryFile('w+')
oldwrite = tr._tw.write
def tee_write(s, **kwargs):
oldwrite(s, **kwargs)
config._pastebinfile.write(str(s))
tr._tw.write = tee_write
def pytest_unconfigure(config):
if hasattr(config, '_pastebinfile'):