50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
|
import unittest
|
||
|
from nose import case
|
||
|
from nose.config import Config
|
||
|
from nose.plugins import debug
|
||
|
from nose.plugins.manager import PluginManager
|
||
|
from nose.plugins.skip import Skip, SkipTest
|
||
|
from nose.proxy import ResultProxyFactory
|
||
|
|
||
|
|
||
|
class StubPdb:
|
||
|
called = False
|
||
|
def post_mortem(self, tb):
|
||
|
self.called = True
|
||
|
|
||
|
class TestSkipPdbInteraction(unittest.TestCase):
|
||
|
"""Tests interaction between skip plugin and pdb plugin -- pdb should
|
||
|
not fire on a skip error
|
||
|
"""
|
||
|
def setUp(self):
|
||
|
self._pdb = debug.pdb
|
||
|
debug.pdb = StubPdb()
|
||
|
|
||
|
def tearDown(self):
|
||
|
debug.pdb = self._pdb
|
||
|
|
||
|
def test_skip_prevents_pdb_call(self):
|
||
|
|
||
|
class TC(unittest.TestCase):
|
||
|
def test(self):
|
||
|
raise SkipTest('not me')
|
||
|
|
||
|
skip = Skip()
|
||
|
skip.enabled = True
|
||
|
p = debug.Pdb()
|
||
|
p.enabled = True
|
||
|
p.enabled_for_errors = True
|
||
|
res = unittest.TestResult()
|
||
|
conf = Config(plugins=PluginManager(plugins=[skip, p]))
|
||
|
rpf = ResultProxyFactory(conf)
|
||
|
test = case.Test(TC('test'), resultProxy=rpf)
|
||
|
test(res)
|
||
|
|
||
|
assert not res.errors, "Skip was recorded as error %s" % res.errors
|
||
|
assert not debug.pdb.called, "pdb was called"
|
||
|
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
unittest.main()
|