awips2/pythonPackages/nose/functional_tests/test_skip_pdb_interaction.py
2017-04-21 18:33:55 -06:00

49 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()