/usr/lib/python2.7/dist-packages/nose2/tests/unit/test_debugger_plugin.py is in python-nose2 0.5.0-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 | import logging
from nose2.tests._common import TestCase
from nose2.plugins import debugger
from nose2 import events, result, session
class NullHandler(logging.Handler):
def emit(self, record):
pass
class StubPdb(object):
def __init__(self):
self.called = False
self.tb = None
def post_mortem(self, tb):
self.called = True
self.tb = tb
class NoInteraction(events.Plugin):
def beforeInteraction(self, event):
event.handled = True
return False
class TestDebugger(TestCase):
tags = ['unit']
def setUp(self):
self.session = session.Session()
self.plugin = debugger.Debugger(session=self.session)
self.result = result.PluggableTestResult(self.session)
class Test(TestCase):
def test(self):
pass
def test_err(self):
raise Exception("oops")
def test_fail(self):
assert False
self.case = Test
self.pdb = self.plugin.pdb
self.plugin.pdb = StubPdb()
self.plugin.register()
super(TestCase, self).setUp()
def tearDown(self):
self.plugin.pdb = self.pdb
super(TestCase, self).tearDown()
def test_does_not_call_pdb_on_success(self):
test = self.case('test')
test(self.result)
assert not self.plugin.pdb.called, "pdb was called on success"
def test_does_call_pdb_on_error(self):
test = self.case('test_err')
test(self.result)
assert self.plugin.pdb.called, "pdb was not called on error"
def test_does_call_pdb_on_failure(self):
test = self.case('test_fail')
test(self.result)
assert self.plugin.pdb.called, "pdb was not called on failure"
def test_does_not_call_pdb_on_failure_if_config_set(self):
self.plugin.errorsOnly = True
test = self.case('test_fail')
test(self.result)
assert not self.plugin.pdb.called, \
"pdb was called on failure when errorsOnly set"
def test_other_plugins_can_prevent_interaction(self):
# prevent 'no logger for x' warnings
debugger.log.addHandler(NullHandler())
nono = NoInteraction(session=self.session)
nono.register()
test = self.case('test_err')
test(self.result)
assert not self.plugin.pdb.called, \
"pdb was called despite beforeInteraction returning False"
|