Merge pull request #66 from nicoddemus/issue-65-internal-error

Fix internal error when a fixture raises an exception
This commit is contained in:
Ronny Pfannschmidt
2016-06-07 08:29:19 +02:00
3 changed files with 28 additions and 1 deletions

View File

@@ -7,6 +7,9 @@
- display progress during collection only when in a terminal, similar to pytest #1397 issue.
Thanks Bruno Oliveira for the PR.
- fix internal error message when ``--maxfail`` is used (#62, #65).
Thanks Collin RM Stocks and Bryan A. Jones for reports and Bruno Oliveira for the PR.
1.14
----

View File

@@ -664,3 +664,24 @@ def test_color_yes_collection_on_non_atty(testdir, request):
assert '\x1b[1m' in result.stdout.str()
assert 'gw0 [10] / gw1 [10]' in result.stdout.str()
assert 'gw0 C / gw1 C' not in result.stdout.str()
def test_internal_error_with_maxfail(testdir):
"""
Internal error when using --maxfail option (#62, #65).
"""
testdir.makepyfile("""
import pytest
@pytest.fixture(params=['1', '2'])
def crasher():
raise RuntimeError
def test_aaa0(crasher):
pass
def test_aaa1(crasher):
pass
""")
result = testdir.runpytest_subprocess('--maxfail=1', '-n1')
result.stdout.fnmatch_lines(['* 1 error in *'])
assert 'INTERNALERROR' not in result.stderr.str()

View File

@@ -46,7 +46,10 @@ class SlaveInteractor:
self.log("entering main loop")
torun = []
while 1:
name, kwargs = self.channel.receive()
try:
name, kwargs = self.channel.receive()
except EOFError:
return True
self.log("received command", name, kwargs)
if name == "runtests":
torun.extend(kwargs['indices'])