/usr/lib/python3/dist-packages/nose2/result.py is in python3-nose2 0.7.4-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | import time
from nose2 import events
ERROR = 'error'
FAIL = 'failed'
SKIP = 'skipped'
PASS = 'passed'
__unittest = True
class PluggableTestResult(object):
"""Test result that defers to plugins.
All test outcome recording and reporting is deferred to plugins,
which are expected to implement :func:`startTest`, :func:`stopTest`,
:func:`testOutcome`, and :func:`wasSuccessful`.
:param session: Test run session.
.. attribute :: shouldStop
When ``True``, test run should stop before running another test.
"""
def __init__(self, session):
self.session = session
self.shouldStop = False
def startTest(self, test):
"""Start a test case.
Fires :func:`startTest` hook.
"""
event = events.StartTestEvent(test, self, time.time())
self.session.hooks.startTest(event)
def stopTest(self, test):
"""Stop a test case.
Fires :func:`stopTest` hook.
"""
event = events.StopTestEvent(test, self, time.time())
self.session.hooks.stopTest(event)
def addError(self, test, err):
"""Test case resulted in error.
Fires :func:`setTestOutcome` and :func:`testOutcome` hooks.
"""
event = events.TestOutcomeEvent(test, self, ERROR, err)
self.session.hooks.setTestOutcome(event)
self.session.hooks.testOutcome(event)
def addFailure(self, test, err):
"""Test case resulted in failure.
Fires :func:`setTestOutcome` and :func:`testOutcome` hooks.
"""
event = events.TestOutcomeEvent(test, self, FAIL, err)
self.session.hooks.setTestOutcome(event)
self.session.hooks.testOutcome(event)
def addSuccess(self, test):
"""Test case resulted in success.
Fires :func:`setTestOutcome` and :func:`testOutcome` hooks.
"""
event = events.TestOutcomeEvent(test, self, PASS, expected=True)
self.session.hooks.setTestOutcome(event)
self.session.hooks.testOutcome(event)
def addSkip(self, test, reason):
"""Test case was skipped.
Fires :func:`setTestOutcome` and :func:`testOutcome` hooks.
"""
event = events.TestOutcomeEvent(test, self, SKIP, reason=reason)
self.session.hooks.setTestOutcome(event)
self.session.hooks.testOutcome(event)
def addExpectedFailure(self, test, err):
"""Test case resulted in expected failure.
Fires :func:`setTestOutcome` and :func:`testOutcome` hooks.
"""
event = events.TestOutcomeEvent(test, self, FAIL, err, expected=True)
self.session.hooks.setTestOutcome(event)
self.session.hooks.testOutcome(event)
def addUnexpectedSuccess(self, test):
"""Test case resulted in unexpected success.
Fires :func:`setTestOutcome` and :func:`testOutcome` hooks.
"""
event = events.TestOutcomeEvent(test, self, PASS)
self.session.hooks.setTestOutcome(event)
self.session.hooks.testOutcome(event)
def wasSuccessful(self):
"""Was test run successful?
Fires :func:`wasSuccessful` hook, and returns ``event.success``.
"""
# assume failure; plugins must explicitly declare success
try:
return self._success
except AttributeError:
event = events.ResultSuccessEvent(self, False)
self.session.hooks.wasSuccessful(event)
self._success = event.success
return self._success
def stop(self):
"""Stop test run.
Fires :func:`resultStop` hook, and sets ``self.shouldStop`` to
``event.shouldStop``.
"""
event = events.ResultStopEvent(self, True)
self.session.hooks.resultStop(event)
self.shouldStop = event.shouldStop
def __repr__(self):
return '<%s>' % self.__class__.__name__
|