Add assertRaisesWithArg for better KeyError/IndexError testing.

Change-Id: Iadc9075e8e705579e4c0daf49fe7110db55e87c0
This commit is contained in:
Dave Borowitz 2010-11-05 16:02:48 -07:00
parent 8ad31c1db4
commit 520556e552
2 changed files with 14 additions and 6 deletions

@ -49,9 +49,9 @@ class TreeTest(utils.TestRepoTestCase):
def test_read_tree(self):
tree = self.repo[TREE_SHA]
self.assertRaises(TypeError, lambda: tree[()])
self.assertRaises(KeyError, lambda: tree['abcd'])
self.assertRaises(IndexError, lambda: tree[-4])
self.assertRaises(IndexError, lambda: tree[3])
self.assertRaisesWithArg(KeyError, 'abcd', lambda: tree['abcd'])
self.assertRaisesWithArg(IndexError, -4, lambda: tree[-4])
self.assertRaisesWithArg(IndexError, 3, lambda: tree[3])
self.assertEqual(3, len(tree))
a_sha = '7f129fd57e31e935c6d60a0c794efe4e6927664b'
@ -84,7 +84,7 @@ class TreeTest(utils.TestRepoTestCase):
self.assertEqual(2, len(tree))
self.assertTrue('x' in tree)
self.assertTrue('y' in tree)
self.assertRaises(KeyError, tree['x'].to_object)
self.assertRaisesWithArg(KeyError, '1' * 40, tree['x'].to_object)
tree.add_entry('3' * 40, 'z1', 0100644)
tree.add_entry('4' * 40, 'z2', 0100644)
@ -108,11 +108,11 @@ class TreeTest(utils.TestRepoTestCase):
def fail_del_by_name():
del tree['asdf']
self.assertRaises(KeyError, fail_del_by_name)
self.assertRaisesWithArg(KeyError, 'asdf', fail_del_by_name)
def fail_del_by_index():
del tree[99]
self.assertRaises(IndexError, fail_del_by_index)
self.assertRaisesWithArg(IndexError, 99, fail_del_by_index)
self.assertTrue('c' in tree)
self.assertEqual(3, len(tree))

@ -50,3 +50,11 @@ class TestRepoTestCase(unittest.TestCase):
def tearDown(self):
shutil.rmtree(self._temp_dir)
def assertRaisesWithArg(self, exc_class, arg, func, *args, **kwargs):
try:
func(*args, **kwargs)
except exc_class, e:
self.assertEqual((arg,), e.args)
else:
self.fail('%s(%r) not raised' % (exc_class.__name__, arg))