diff --git a/pygit2.c b/pygit2.c index a970589..760d8a4 100644 --- a/pygit2.c +++ b/pygit2.c @@ -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)) { diff --git a/test/data/testrepo.tar b/test/data/testrepo.tar index 3f64912..1b613a8 100644 Binary files a/test/data/testrepo.tar and b/test/data/testrepo.tar differ diff --git a/test/test_index.py b/test/test_index.py index 8dee69d..19a41da 100644 --- a/test/test_index.py +++ b/test/test_index.py @@ -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) diff --git a/test/test_revwalk.py b/test/test_revwalk.py index b3b5171..5fa912d 100644 --- a/test/test_revwalk.py +++ b/test/test_revwalk.py @@ -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()