Merged revisions 74865,75175,75180 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74865 | georg.brandl | 2009-09-17 02:49:37 -0500 (Thu, 17 Sep 2009) | 1 line

  #6912: add "with" block support to pindent.
........
  r75175 | georg.brandl | 2009-10-01 15:11:14 -0500 (Thu, 01 Oct 2009) | 1 line

  Fix some weird whitespace and two other overlong lines.
........
  r75180 | georg.brandl | 2009-10-01 15:59:31 -0500 (Thu, 01 Oct 2009) | 1 line

  #7031: Add TestCase.assertIsInstance and negated method.
........
This commit is contained in:
Benjamin Peterson 2009-10-04 20:19:21 +00:00
parent 23c5050b25
commit 6e8c75755a
4 changed files with 50 additions and 6 deletions

View file

@ -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'}

View file

@ -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.