Add more unit tests for revision walking
Signed-off-by: J. David Ibañez <jdavid@itaapy.com>
This commit is contained in:
3
pygit2.c
3
pygit2.c
@@ -373,8 +373,7 @@ Repository_walk(Repository *self, PyObject *args)
|
|||||||
git_revwalk *walk;
|
git_revwalk *walk;
|
||||||
Walker *py_walker;
|
Walker *py_walker;
|
||||||
|
|
||||||
sort = GIT_SORT_TOPOLOGICAL | GIT_SORT_REVERSE;
|
if (!PyArg_ParseTuple(args, "OI", &value, &sort))
|
||||||
if (!PyArg_ParseTuple(args, "O|I", &value, &sort))
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (value != Py_None && !PyString_Check(value)) {
|
if (value != Py_None && !PyString_Check(value)) {
|
||||||
|
Binary file not shown.
@@ -50,16 +50,16 @@ class IndexTest(utils.RepoTestCase):
|
|||||||
index = self.repo.index
|
index = self.repo.index
|
||||||
self.assertEqual(len(index), 0)
|
self.assertEqual(len(index), 0)
|
||||||
index.read()
|
index.read()
|
||||||
self.assertEqual(len(index), 1)
|
self.assertEqual(len(index), 2)
|
||||||
|
|
||||||
self.assertRaises(TypeError, lambda: index[()])
|
self.assertRaises(TypeError, lambda: index[()])
|
||||||
self.assertRaisesWithArg(ValueError, -4, lambda: index[-4])
|
self.assertRaisesWithArg(ValueError, -4, lambda: index[-4])
|
||||||
self.assertRaisesWithArg(KeyError, 'abc', lambda: index['abc'])
|
self.assertRaisesWithArg(KeyError, 'abc', lambda: index['abc'])
|
||||||
|
|
||||||
sha = '3b18e512dba79e4c8300dd08aeb37f8e728b8dad'
|
sha = 'a520c24d85fbfc815d385957eed41406ca5a860b'
|
||||||
self.assertTrue('hello.txt' in index)
|
self.assertTrue('hello.txt' in index)
|
||||||
self.assertEqual(index['hello.txt'].sha, sha)
|
self.assertEqual(index['hello.txt'].sha, sha)
|
||||||
self.assertEqual(index[0].sha, sha)
|
self.assertEqual(index[1].sha, sha)
|
||||||
|
|
||||||
def test_add(self):
|
def test_add(self):
|
||||||
index = self.repo.index
|
index = self.repo.index
|
||||||
@@ -69,13 +69,13 @@ class IndexTest(utils.RepoTestCase):
|
|||||||
self.assertFalse('bye.txt' in index)
|
self.assertFalse('bye.txt' in index)
|
||||||
index.add('bye.txt', 0)
|
index.add('bye.txt', 0)
|
||||||
self.assertTrue('bye.txt' in index)
|
self.assertTrue('bye.txt' in index)
|
||||||
self.assertEqual(len(index), 2)
|
self.assertEqual(len(index), 3)
|
||||||
self.assertEqual(index['bye.txt'].sha, sha)
|
self.assertEqual(index['bye.txt'].sha, sha)
|
||||||
|
|
||||||
def test_clear(self):
|
def test_clear(self):
|
||||||
index = self.repo.index
|
index = self.repo.index
|
||||||
index.read()
|
index.read()
|
||||||
self.assertEqual(len(index), 1)
|
self.assertEqual(len(index), 2)
|
||||||
index.clear()
|
index.clear()
|
||||||
self.assertEqual(len(index), 0)
|
self.assertEqual(len(index), 0)
|
||||||
|
|
||||||
|
@@ -30,12 +30,37 @@
|
|||||||
|
|
||||||
__author__ = 'jdavid@itaapy.com (J. David Ibáñez)'
|
__author__ = 'jdavid@itaapy.com (J. David Ibáñez)'
|
||||||
|
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from pygit2 import GIT_SORT_TIME, GIT_SORT_REVERSE
|
||||||
import utils
|
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):
|
def test_walk(self):
|
||||||
history = self.repo.walk("5fe808e8953c12735680c257f56600cb0de44b10")
|
walker = self.repo.walk(log[0], GIT_SORT_TIME)
|
||||||
history = list(history)
|
out = [ x.sha for x in walker ]
|
||||||
self.assertEqual(len(history), 2)
|
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()
|
||||||
|
Reference in New Issue
Block a user