Avoid collecting duplicate failures when using --looponfail.
This commit is contained in:
@@ -206,6 +206,24 @@ class TestLooponFailing:
|
||||
remotecontrol.loop_once()
|
||||
assert len(remotecontrol.failures) == 1
|
||||
|
||||
def test_looponfail_multiple_errors(self, testdir, monkeypatch):
|
||||
modcol = testdir.getmodulecol("""
|
||||
def test_one():
|
||||
assert 0
|
||||
""")
|
||||
remotecontrol = RemoteControl(modcol.config)
|
||||
orig_runsession = remotecontrol.runsession
|
||||
|
||||
def runsession_dups():
|
||||
# twisted.trial test cases may report multiple errors.
|
||||
failures, reports, collection_failed = orig_runsession()
|
||||
print failures
|
||||
return failures * 2, reports, collection_failed
|
||||
|
||||
monkeypatch.setattr(remotecontrol, 'runsession', runsession_dups)
|
||||
remotecontrol.loop_once()
|
||||
assert len(remotecontrol.failures) == 1
|
||||
|
||||
|
||||
class TestFunctional:
|
||||
def test_fail_to_ok(self, testdir):
|
||||
|
||||
@@ -89,7 +89,11 @@ class RemoteControl(object):
|
||||
if collection_failed:
|
||||
reports = ["Collection failed, keeping previous failure set"]
|
||||
else:
|
||||
self.failures = failures
|
||||
uniq_failures = []
|
||||
for failure in failures:
|
||||
if failure not in uniq_failures:
|
||||
uniq_failures.append(failure)
|
||||
self.failures = uniq_failures
|
||||
|
||||
def repr_pytest_looponfailinfo(failreports, rootdirs):
|
||||
tr = py.io.TerminalWriter()
|
||||
|
||||
Reference in New Issue
Block a user