import sys
|
|
__all__ = ['TestCase']
|
|
if sys.version_info[:2] == (2, 6):
|
import contextlib
|
from unittest import TestCase as BaseTestCase
|
|
class SkipException(Exception):
|
pass
|
|
class ExceptionContext(object):
|
|
def __init__(self):
|
self.exception = None
|
|
class TestCase(BaseTestCase):
|
|
def assertIs(self, a, b):
|
self.assertTrue(a is b)
|
|
def assertIsNot(self, a, b):
|
self.assertTrue(a is not b)
|
|
def assertIsNone(self, a):
|
self.assertTrue(a is None)
|
|
def assertIsNotNone(self, a):
|
self.assertTrue(a is not None)
|
|
def assertIn(self, a, b):
|
self.assertTrue(a in b)
|
|
def assertNotIn(self, a, b):
|
self.assertTrue(a not in b)
|
|
def assertIsInstance(self, a, b):
|
self.assertTrue(isinstance(a, b))
|
|
def assertNotIsInstance(self, a, b):
|
self.assertTrue(not isinstance(a, b))
|
|
def assertSequenceEqual(self, a, b, msg=None, seq_type=None):
|
return self.assertEqual(tuple(a), tuple(b), msg=msg)
|
|
def assertMultiLineEqual(self, a, b, msg=None):
|
return self.assertEqual(a, b, msg=msg)
|
|
def assertGreater(self, a, b, msg=None):
|
return self.assertTrue(a > b, msg=msg)
|
|
@contextlib.contextmanager
|
def failUnlessRaises(self, error, *args):
|
context = ExceptionContext()
|
if len(args) == 0:
|
try:
|
yield context
|
except error as exception:
|
context.exception = exception
|
else:
|
self.fail('{0} was not raised'.format(error))
|
else:
|
super(TestCase, self).failUnlessRaises(error, *args)
|
assertRaises = failUnlessRaises
|
|
def run(self, result=None):
|
BaseTestCase.run(self, result)
|
if result is not None:
|
errors = result.errors
|
skip_error = (
|
'in skipTest\n raise SkipException(msg)')
|
result.errors = []
|
for error in errors:
|
if skip_error in error[1]:
|
print ('Skipped')
|
else:
|
result.errors.append(error)
|
return result
|
|
def skipTest(self, msg):
|
raise SkipException(msg)
|
|
else:
|
from unittest import TestCase
|