diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_unittest.py | 12 | ||||
-rw-r--r-- | Lib/unittest/case.py | 24 |
2 files changed, 32 insertions, 4 deletions
diff --git a/Lib/test/test_unittest.py b/Lib/test/test_unittest.py index 108802d..120a90d 100644 --- a/Lib/test/test_unittest.py +++ b/Lib/test/test_unittest.py @@ -2510,6 +2510,18 @@ class Test_TestCase(TestCase, TestEquality, TestHashing): self.assertIsNot(thing, object()) self.assertRaises(self.failureException, self.assertIsNot, thing, thing) + def testAssertIsInstance(self): + thing = [] + self.assertIsInstance(thing, list) + self.assertRaises(self.failureException, self.assertIsInstance, + thing, dict) + + def testAssertNotIsInstance(self): + thing = [] + self.assertNotIsInstance(thing, dict) + self.assertRaises(self.failureException, self.assertNotIsInstance, + thing, list) + def testAssertIn(self): animals = {'monkey': 'banana', 'cow': 'grass', 'seal': 'fish'} diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index 660ddeb..88254be 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -620,8 +620,9 @@ class TestCase(object): except (TypeError, IndexError, NotImplementedError): differing += ('Unable to index element %d ' 'of second %s\n' % (len1, seq_type_name)) - standardMsg = differing + '\n' + '\n'.join(difflib.ndiff(pprint.pformat(seq1).splitlines(), - pprint.pformat(seq2).splitlines())) + standardMsg = differing + '\n' + '\n'.join( + difflib.ndiff(pprint.pformat(seq1).splitlines(), + pprint.pformat(seq2).splitlines())) msg = self._formatMessage(msg, standardMsg) self.fail(msg) @@ -734,7 +735,8 @@ class TestCase(object): if key not in actual: missing.append(key) elif value != actual[key]: - mismatched.append('%s, expected: %s, actual: %s' % (key, value, actual[key])) + mismatched.append('%s, expected: %s, actual: %s' % + (key, value, actual[key])) if not (missing or mismatched): return @@ -793,7 +795,8 @@ class TestCase(object): 'Second argument is not a string')) if first != second: - standardMsg = '\n' + ''.join(difflib.ndiff(first.splitlines(True), second.splitlines(True))) + standardMsg = '\n' + ''.join(difflib.ndiff(first.splitlines(True), + second.splitlines(True))) self.fail(self._formatMessage(msg, standardMsg)) def assertLess(self, a, b, msg=None): @@ -832,6 +835,19 @@ class TestCase(object): standardMsg = 'unexpectedly None' self.fail(self._formatMessage(msg, standardMsg)) + def assertIsInstance(self, obj, cls, msg=None): + """Same as self.assertTrue(isinstance(obj, cls)), with a nicer + default message.""" + if not isinstance(obj, cls): + standardMsg = '%r is not an instance of %r' % (obj, cls) + self.fail(self._formatMessage(msg, standardMsg)) + + def assertNotIsInstance(self, obj, cls, msg=None): + """Included for symmetry with assertIsInstance.""" + if isinstance(obj, cls): + standardMsg = '%r is an instance of %r' % (obj, cls) + self.fail(self._formatMessage(msg, standardMsg)) + def assertRaisesRegexp(self, expected_exception, expected_regexp, callable_obj=None, *args, **kwargs): """Asserts that the message in a raised exception matches a regexp. |