diff --git a/src/remote.c b/src/remote.c index 6b706d9..175786f 100644 --- a/src/remote.c +++ b/src/remote.c @@ -193,7 +193,7 @@ Remote_fetch(Remote *self, PyObject *args) err = git_remote_download(self->remote, NULL, NULL); if (err == GIT_OK) { stats = git_remote_stats(self->remote); - py_stats = Py_BuildValue("{s:i,s:i,s:i}", + py_stats = Py_BuildValue("{s:I,s:I,s:n}", "indexed_objects", stats->indexed_objects, "received_objects", stats->received_objects, "received_bytes", stats->received_bytes); diff --git a/test/test_remote.py b/test/test_remote.py index 7ac7aac..87c341e 100644 --- a/test/test_remote.py +++ b/test/test_remote.py @@ -35,6 +35,8 @@ REMOTE_NAME = 'origin' REMOTE_URL = 'git://github.com/libgit2/pygit2.git' REMOTE_FETCHSPEC_SRC = 'refs/heads/*' REMOTE_FETCHSPEC_DST = 'refs/remotes/origin/*' +REMOTE_REPO_OBJECTS = 19 +REMOTE_REPO_BYTES = 1586 class RepositoryTest(utils.RepoTestCase): def test_remote_create(self): @@ -93,3 +95,12 @@ class RepositoryTest(utils.RepoTestCase): url = 'git://github.com/libgit2/pygit2.git' remote = self.repo.remote_create(name, url); self.assertTrue(remote.name in [x.name for x in self.repo.remotes]) + + +class EmptyRepositoryTest(utils.EmptyRepoTestCase): + def test_fetch(self): + remote = self.repo.remotes[0] + stats = remote.fetch() + self.assertEqual(stats['received_bytes'], REMOTE_REPO_BYTES) + self.assertEqual(stats['indexed_objects'], REMOTE_REPO_OBJECTS) + self.assertEqual(stats['received_objects'], REMOTE_REPO_OBJECTS)