"""
Stop the test run after the first error or failure.
This plugin implements :func:`testOutcome` and sets
``event.result.shouldStop`` if it sees an outcome with exc_info that
is not expected.
"""
from nose2 import events
__unittest = True
[docs]class FailFast(events.Plugin):
"""Stop the test run after error or failure"""
commandLineSwitch = (
"F",
"fail-fast",
"Stop the test run after the first error or failure",
)
[docs] def resultCreated(self, event):
"""Mark new result"""
if hasattr(event.result, "failfast"):
event.result.failfast = True
[docs] def testOutcome(self, event):
"""Stop on unexpected error or failure"""
if event.exc_info and not event.expected:
event.result.shouldStop = True