Add more unit tests for revision walking

Signed-off-by: J. David Ibañez <jdavid@itaapy.com>
This commit is contained in:
J. David Ibañez 2011-02-21 13:02:36 +01:00
parent 0416276d2f
commit 0032573ca8
4 changed files with 35 additions and 11 deletions

@ -373,8 +373,7 @@ Repository_walk(Repository *self, PyObject *args)
git_revwalk *walk;
Walker *py_walker;
sort = GIT_SORT_TOPOLOGICAL | GIT_SORT_REVERSE;
if (!PyArg_ParseTuple(args, "O|I", &value, &sort))
if (!PyArg_ParseTuple(args, "OI", &value, &sort))
return NULL;
if (value != Py_None && !PyString_Check(value)) {

Binary file not shown.

@ -50,16 +50,16 @@ class IndexTest(utils.RepoTestCase):
index = self.repo.index
self.assertEqual(len(index), 0)
index.read()
self.assertEqual(len(index), 1)
self.assertEqual(len(index), 2)
self.assertRaises(TypeError, lambda: index[()])
self.assertRaisesWithArg(ValueError, -4, lambda: index[-4])
self.assertRaisesWithArg(KeyError, 'abc', lambda: index['abc'])
sha = '3b18e512dba79e4c8300dd08aeb37f8e728b8dad'
sha = 'a520c24d85fbfc815d385957eed41406ca5a860b'
self.assertTrue('hello.txt' in index)
self.assertEqual(index['hello.txt'].sha, sha)
self.assertEqual(index[0].sha, sha)
self.assertEqual(index[1].sha, sha)
def test_add(self):
index = self.repo.index
@ -69,13 +69,13 @@ class IndexTest(utils.RepoTestCase):
self.assertFalse('bye.txt' in index)
index.add('bye.txt', 0)
self.assertTrue('bye.txt' in index)
self.assertEqual(len(index), 2)
self.assertEqual(len(index), 3)
self.assertEqual(index['bye.txt'].sha, sha)
def test_clear(self):
index = self.repo.index
index.read()
self.assertEqual(len(index), 1)
self.assertEqual(len(index), 2)
index.clear()
self.assertEqual(len(index), 0)

@ -30,12 +30,37 @@
__author__ = 'jdavid@itaapy.com (J. David Ibáñez)'
import unittest
from pygit2 import GIT_SORT_TIME, GIT_SORT_REVERSE
import utils
# In the order given by git log
log = [
'2be5719152d4f82c7302b1c0932d8e5f0a4a0e98',
'5ebeeebb320790caf276b9fc8b24546d63316533',
'4ec4389a8068641da2d6578db0419484972284c8',
'6aaa262e655dd54252e5813c8e5acd7780ed097d',
'acecd5ea2924a4b900e7e149496e1f4b57976e51']
class WalkerTest(utils.BareRepoTestCase):
class WalkerTest(utils.RepoTestCase):
def test_walk(self):
history = self.repo.walk("5fe808e8953c12735680c257f56600cb0de44b10")
history = list(history)
self.assertEqual(len(history), 2)
walker = self.repo.walk(log[0], GIT_SORT_TIME)
out = [ x.sha for x in walker ]
self.assertEqual(out, log)
def test_reverse(self):
walker = self.repo.walk(log[0], GIT_SORT_TIME | GIT_SORT_REVERSE)
out = [ x.sha for x in walker ]
self.assertEqual(out, list(reversed(log)))
def test_hide(self):
walker = self.repo.walk(log[0], GIT_SORT_TIME)
walker.hide('4ec4389a8068641da2d6578db0419484972284c8')
self.assertEqual(len(list(walker)), 2)
if __name__ == '__main__':
unittest.main()