The repository iterator now returns Oids, not hexs

This commit is contained in:
J. David Ibáñez
2013-04-20 09:38:12 +02:00
parent a3a928a513
commit fd67685500
2 changed files with 7 additions and 7 deletions

View File

@@ -132,10 +132,10 @@ static int
Repository_build_as_iter(const git_oid *oid, void *accum) Repository_build_as_iter(const git_oid *oid, void *accum)
{ {
int err; int err;
PyObject *oid_str = git_oid_to_py_str(oid); PyObject *py_oid = git_oid_to_python(oid);
err = PyList_Append((PyObject*)accum, oid_str); err = PyList_Append((PyObject*)accum, py_oid);
Py_DECREF(oid_str); Py_DECREF(py_oid);
return err; return err;
} }
@@ -152,11 +152,10 @@ Repository_as_iter(Repository *self)
err = git_odb_foreach(odb, Repository_build_as_iter, (void*)accum); err = git_odb_foreach(odb, Repository_build_as_iter, (void*)accum);
git_odb_free(odb); git_odb_free(odb);
if (err == GIT_EUSER) { if (err == GIT_EUSER)
return NULL; return NULL;
} else if (err < 0) { if (err < 0)
return Error_set(err); return Error_set(err);
}
return PyObject_GetIter(accum); return PyObject_GetIter(accum);
} }

View File

@@ -102,7 +102,8 @@ class RepositoryTest(utils.BareRepoTestCase):
def test_iterable(self): def test_iterable(self):
l = [ obj for obj in self.repo ] l = [ obj for obj in self.repo ]
self.assertTrue(BLOB_HEX in l) oid = Oid(hex=BLOB_HEX)
self.assertTrue(oid in l)
def test_lookup_blob(self): def test_lookup_blob(self):
self.assertRaises(TypeError, lambda: self.repo[123]) self.assertRaises(TypeError, lambda: self.repo[123])