import os
import sys
import unittest
from nose.config import Config
from nose.plugins import doctests
# some plugins have 2.4-only features
compat_24 = sys.version_info >= (2, 4)
class TestDoctestErrorHandling(unittest.TestCase):
def setUp(self):
self._path = sys.path[:]
here = os.path.dirname(__file__)
testdir = os.path.join(here, 'support', 'doctest')
sys.path.insert(0, testdir)
p = doctests.Doctest()
p.conf = Config()
p.doctest_tests = False
p.extension = None
self.p = p
def tearDown(self):
sys.path = self._path[:]
def test_no_doctests_in_file(self):
p = self. p
mod = __import__('no_doctests')
loaded = [ t for t in p.loadTestsFromModule(mod) ]
assert not loaded, "Loaded %s from empty module" % loaded
def test_err_doctests_raises_exception(self):
p = self.p
mod = __import__('err_doctests')
try:
loaded = [ t for t in p.loadTestsFromModule(mod) ]
except ValueError:
pass
else:
if compat_24:
self.fail("Error doctests file did not raise ValueError")
else:
self.assert_(loaded,
"No value error, nothing loaded from err tests")
if __name__ == '__main__':
unittest.main()
syntax highlighted by Code2HTML, v. 0.9.1