awips2/pythonPackages/nose/unit_tests/test_deprecated_plugin.py
root 06a8b51d6d Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: 64fa9254b946eae7e61bbc3f513b7c3696c4f54f
2012-01-06 08:55:05 -06:00

126 lines
3.8 KiB
Python
Executable file

import unittest
from nose.config import Config
from nose.plugins.deprecated import Deprecated, DeprecatedTest
from nose.result import TextTestResult
from StringIO import StringIO
from optparse import OptionParser
class TestDeprecatedPlugin(unittest.TestCase):
def test_api_present(self):
sk = Deprecated()
sk.addOptions
sk.configure
sk.prepareTestResult
def test_prepare_patches_result(self):
stream = unittest._WritelnDecorator(StringIO())
res = unittest._TextTestResult(stream, 0, 1)
sk = Deprecated()
sk.prepareTestResult(res)
res._orig_addError
res._orig_printErrors
res._orig_wasSuccessful
res.deprecated
self.assertEqual(
res.errorClasses,
{DeprecatedTest: (res.deprecated, 'DEPRECATED', False)})
# result w/out print works too
res = unittest.TestResult()
sk = Deprecated()
sk.prepareTestResult(res)
res._orig_addError
res.deprecated
self.assertEqual(
res.errorClasses,
{DeprecatedTest: (res.deprecated, 'DEPRECATED', False)})
def test_patched_result_handles_deprecated(self):
res = unittest.TestResult()
sk = Deprecated()
sk.prepareTestResult(res)
class TC(unittest.TestCase):
def test(self):
raise DeprecatedTest('deprecated me')
test = TC('test')
test(res)
assert not res.errors, "Deprecated was not caught: %s" % res.errors
assert res.deprecated
assert res.deprecated[0][0] is test
def test_patches_only_when_needed(self):
class NoPatch(unittest.TestResult):
def __init__(self):
self.errorClasses = {}
res = NoPatch()
sk = Deprecated()
sk.prepareTestResult(res)
assert not hasattr(res, '_orig_addError'), \
"Deprecated patched a result class it didn't need to patch"
def test_deprecated_output(self):
class TC(unittest.TestCase):
def test(self):
raise DeprecatedTest('deprecated me')
stream = unittest._WritelnDecorator(StringIO())
res = unittest._TextTestResult(stream, 0, 1)
sk = Deprecated()
sk.prepareTestResult(res)
test = TC('test')
test(res)
assert not res.errors, "Deprecated was not caught: %s" % res.errors
assert res.deprecated
res.printErrors()
out = stream.getvalue()
assert out
assert out.strip() == "D"
assert res.wasSuccessful()
def test_deprecated_output_verbose(self):
class TC(unittest.TestCase):
def test(self):
raise DeprecatedTest('deprecated me too')
stream = unittest._WritelnDecorator(StringIO())
res = unittest._TextTestResult(stream, 0, verbosity=2)
sk = Deprecated()
sk.prepareTestResult(res)
test = TC('test')
test(res)
assert not res.errors, "Deprecated was not caught: %s" % res.errors
assert res.deprecated
res.printErrors()
out = stream.getvalue()
print out
assert out
assert ' ... DEPRECATED' in out
assert 'deprecated me too' in out
def test_enabled_by_default(self):
sk = Deprecated()
assert sk.enabled, "Deprecated was not enabled by default"
def test_can_be_disabled(self):
parser = OptionParser()
sk = Deprecated()
sk.addOptions(parser)
options, args = parser.parse_args(['--no-deprecated'])
sk.configure(options, Config())
assert not sk.enabled, \
"Deprecated was not disabled by noDeprecated option"
if __name__ == '__main__':
unittest.main()