awips2/pythonPackages/nose/functional_tests/test_skip_pdb_interaction.py

50 lines
1.3 KiB
Python
Raw Normal View History

2017-04-21 18:33:55 -06:00
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()