1 new commit in pytest-xdist: https://bitbucket.org/hpk42/pytest-xdist/commits/81566ffbb271/ Changeset: 81566ffbb271 User: hpk42 Date: 2014-03-26 18:33:09 Summary: fix pytest/xdist issue485 (also depends on py-1.4.21.dev1): attach stdout/stderr on --boxed processes that die. Affected #: 5 files
diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +XXX +------------------------- + +- fix pytest/xdist issue485 (also depends on py-1.4.21.dev1): + attach stdout/stderr on --boxed processes that die. + 1.10 ------------------------- diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 setup.py --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="pytest-xdist", - version='1.10', + version='1.11.dev1', description='py.test xdist plugin for distributed testing and loop-on-failing modes', long_description=open('README.txt').read(), license='MIT', diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 testing/test_boxed.py --- a/testing/test_boxed.py +++ b/testing/test_boxed.py @@ -1,6 +1,10 @@ -import py +import pytest +import os -@py.test.mark.skipif("not hasattr(os, 'fork')") +needsfork = pytest.mark.skipif(not hasattr(os, "fork"), + reason="os.fork required") + +@needsfork def test_functional_boxed(testdir): p1 = testdir.makepyfile(""" import os @@ -13,12 +17,32 @@ "*1 failed*" ]) +@needsfork +def test_functional_boxed_stdout(testdir): + p1 = testdir.makepyfile(""" + import os + import sys + def test_function(): + sys.stdout.write("hello\\n") + sys.stderr.write("world\\n") + os.kill(os.getpid(), 15) + """) + result = testdir.runpytest(p1, "--boxed") + result.stdout.fnmatch_lines(""" + *CRASHED* + *stdout* + hello + *stderr* + world + *1 failed* + """) + class TestOptionEffects: def test_boxed_option_default(self, testdir): tmpdir = testdir.tmpdir.ensure("subdir", dir=1) config = testdir.parseconfig() assert not config.option.boxed - py.test.importorskip("execnet") + pytest.importorskip("execnet") config = testdir.parseconfig('-d', tmpdir) assert not config.option.boxed diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 xdist/__init__.py --- a/xdist/__init__.py +++ b/xdist/__init__.py @@ -1,2 +1,2 @@ # -__version__ = '1.10' +__version__ = '1.11.dev1' diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 xdist/plugin.py --- a/xdist/plugin.py +++ b/xdist/plugin.py @@ -118,10 +118,14 @@ def report_process_crash(item, result): path, lineno = item._getfslineno() - info = "%s:%s: running the test CRASHED with signal %d" %( - path, lineno, result.signal) + info = ("%s:%s: running the test CRASHED with signal %d" % + (path, lineno, result.signal)) from _pytest import runner call = runner.CallInfo(lambda: 0/0, "???") call.excinfo = info rep = runner.pytest_runtest_makereport(item, call) + if result.out: + rep.sections.append(("captured stdout", result.out)) + if result.err: + rep.sections.append(("captured stderr", result.err)) return rep Repository URL: https://bitbucket.org/hpk42/pytest-xdist/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. _______________________________________________ pytest-commit mailing list pytest-commit@python.org https://mail.python.org/mailman/listinfo/pytest-commit