awips2/pythonPackages/nose/unit_tests/test_skip_plugin.py
root 57877615f5 Initial revision of AWIPS2 11.9.0-7p5
Former-commit-id: 2b462d8665 [formerly 133dc97f67] [formerly a02aeb236c] [formerly a02aeb236c [formerly 9f19e3f712]] [formerly 2b462d8665 [formerly 133dc97f67] [formerly a02aeb236c] [formerly a02aeb236c [formerly 9f19e3f712]] [formerly 06a8b51d6d [formerly a02aeb236c [formerly 9f19e3f712] [formerly 06a8b51d6d [formerly 64fa9254b946eae7e61bbc3f513b7c3696c4f54f]]]]]
Former-commit-id: 06a8b51d6d
Former-commit-id: 2c3569dd39 [formerly 9bb8decbcf] [formerly 8e80217e59] [formerly e2ecdcfe33 [formerly 377dcd10b9] [formerly 8e80217e59 [formerly 3360eb6c5f]]]
Former-commit-id: e2ecdcfe33 [formerly 377dcd10b9]
Former-commit-id: e2ecdcfe33
Former-commit-id: 7dbd17a5aa
2012-01-06 08:55:05 -06:00

123 lines
3.5 KiB
Python
Executable file

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