openmedialibrary_platform/Darwin/lib/python3.5/unittest/test/support.py

139 lines
3.7 KiB
Python
Raw Normal View History

2013-10-11 17:28:32 +00:00
import unittest
2014-09-30 16:15:32 +00:00
class TestEquality(object):
"""Used as a mixin for TestCase"""
# Check for a valid __eq__ implementation
def test_eq(self):
for obj_1, obj_2 in self.eq_pairs:
self.assertEqual(obj_1, obj_2)
self.assertEqual(obj_2, obj_1)
# Check for a valid __ne__ implementation
def test_ne(self):
for obj_1, obj_2 in self.ne_pairs:
self.assertNotEqual(obj_1, obj_2)
self.assertNotEqual(obj_2, obj_1)
2013-10-11 17:28:32 +00:00
class TestHashing(object):
"""Used as a mixin for TestCase"""
# Check for a valid __hash__ implementation
def test_hash(self):
for obj_1, obj_2 in self.eq_pairs:
try:
if not hash(obj_1) == hash(obj_2):
self.fail("%r and %r do not hash equal" % (obj_1, obj_2))
2014-09-30 16:15:32 +00:00
except Exception as e:
2013-10-11 17:28:32 +00:00
self.fail("Problem hashing %r and %r: %s" % (obj_1, obj_2, e))
for obj_1, obj_2 in self.ne_pairs:
try:
if hash(obj_1) == hash(obj_2):
self.fail("%s and %s hash equal, but shouldn't" %
(obj_1, obj_2))
2014-09-30 16:15:32 +00:00
except Exception as e:
2013-10-11 17:28:32 +00:00
self.fail("Problem hashing %s and %s: %s" % (obj_1, obj_2, e))
2014-09-30 16:15:32 +00:00
class _BaseLoggingResult(unittest.TestResult):
2013-10-11 17:28:32 +00:00
def __init__(self, log):
self._events = log
2014-09-30 16:15:32 +00:00
super().__init__()
2013-10-11 17:28:32 +00:00
def startTest(self, test):
self._events.append('startTest')
2014-09-30 16:15:32 +00:00
super().startTest(test)
2013-10-11 17:28:32 +00:00
def startTestRun(self):
self._events.append('startTestRun')
2014-09-30 16:15:32 +00:00
super().startTestRun()
2013-10-11 17:28:32 +00:00
def stopTest(self, test):
self._events.append('stopTest')
2014-09-30 16:15:32 +00:00
super().stopTest(test)
2013-10-11 17:28:32 +00:00
def stopTestRun(self):
self._events.append('stopTestRun')
2014-09-30 16:15:32 +00:00
super().stopTestRun()
2013-10-11 17:28:32 +00:00
def addFailure(self, *args):
self._events.append('addFailure')
2014-09-30 16:15:32 +00:00
super().addFailure(*args)
2013-10-11 17:28:32 +00:00
def addSuccess(self, *args):
self._events.append('addSuccess')
2014-09-30 16:15:32 +00:00
super().addSuccess(*args)
2013-10-11 17:28:32 +00:00
def addError(self, *args):
self._events.append('addError')
2014-09-30 16:15:32 +00:00
super().addError(*args)
2013-10-11 17:28:32 +00:00
def addSkip(self, *args):
self._events.append('addSkip')
2014-09-30 16:15:32 +00:00
super().addSkip(*args)
2013-10-11 17:28:32 +00:00
def addExpectedFailure(self, *args):
self._events.append('addExpectedFailure')
2014-09-30 16:15:32 +00:00
super().addExpectedFailure(*args)
2013-10-11 17:28:32 +00:00
def addUnexpectedSuccess(self, *args):
self._events.append('addUnexpectedSuccess')
2014-09-30 16:15:32 +00:00
super().addUnexpectedSuccess(*args)
class LegacyLoggingResult(_BaseLoggingResult):
"""
A legacy TestResult implementation, without an addSubTest method,
which records its method calls.
"""
@property
def addSubTest(self):
raise AttributeError
class LoggingResult(_BaseLoggingResult):
"""
A TestResult implementation which records its method calls.
"""
def addSubTest(self, test, subtest, err):
if err is None:
self._events.append('addSubTestSuccess')
else:
self._events.append('addSubTestFailure')
super().addSubTest(test, subtest, err)
2013-10-11 17:28:32 +00:00
class ResultWithNoStartTestRunStopTestRun(object):
"""An object honouring TestResult before startTestRun/stopTestRun."""
def __init__(self):
self.failures = []
self.errors = []
self.testsRun = 0
self.skipped = []
self.expectedFailures = []
self.unexpectedSuccesses = []
self.shouldStop = False
def startTest(self, test):
pass
def stopTest(self, test):
pass
def addError(self, test):
pass
def addFailure(self, test):
pass
def addSuccess(self, test):
pass
def wasSuccessful(self):
return True