Add Object.oid to get the raw object id
This commit is contained in:
parent
54dd6714f2
commit
11ff1842b7
19
pygit2.c
19
pygit2.c
@ -959,9 +959,15 @@ Object_dealloc(Object* self)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
Object_get_type(Object *self)
|
Object_get_oid(Object *self)
|
||||||
{
|
{
|
||||||
return PyInt_FromLong(git_object_type(self->obj));
|
const git_oid *oid;
|
||||||
|
|
||||||
|
oid = git_object_id(self->obj);
|
||||||
|
if (!oid)
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
|
||||||
|
return PyString_FromStringAndSize(oid->id, GIT_OID_RAWSZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
@ -976,6 +982,12 @@ Object_get_sha(Object *self)
|
|||||||
return git_oid_to_py_str(oid);
|
return git_oid_to_py_str(oid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
Object_get_type(Object *self)
|
||||||
|
{
|
||||||
|
return PyInt_FromLong(git_object_type(self->obj));
|
||||||
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
Object_read_raw(Object *self)
|
Object_read_raw(Object *self)
|
||||||
{
|
{
|
||||||
@ -1007,8 +1019,9 @@ cleanup:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static PyGetSetDef Object_getseters[] = {
|
static PyGetSetDef Object_getseters[] = {
|
||||||
{"type", (getter)Object_get_type, NULL, "type number", NULL},
|
{"oid", (getter)Object_get_oid, NULL, "object id", NULL},
|
||||||
{"sha", (getter)Object_get_sha, NULL, "hex SHA", NULL},
|
{"sha", (getter)Object_get_sha, NULL, "hex SHA", NULL},
|
||||||
|
{"type", (getter)Object_get_type, NULL, "type number", NULL},
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
from binascii import b2a_hex
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import pygit2
|
import pygit2
|
||||||
@ -44,6 +45,9 @@ class BlobTest(utils.BareRepoTestCase):
|
|||||||
|
|
||||||
def test_read_blob(self):
|
def test_read_blob(self):
|
||||||
blob = self.repo[BLOB_SHA]
|
blob = self.repo[BLOB_SHA]
|
||||||
|
self.assertEqual(blob.sha, BLOB_SHA)
|
||||||
|
sha = b2a_hex(blob.oid).decode('ascii')
|
||||||
|
self.assertEqual(sha, BLOB_SHA)
|
||||||
self.assertTrue(isinstance(blob, pygit2.Blob))
|
self.assertTrue(isinstance(blob, pygit2.Blob))
|
||||||
self.assertEqual(pygit2.GIT_OBJ_BLOB, blob.type)
|
self.assertEqual(pygit2.GIT_OBJ_BLOB, blob.type)
|
||||||
self.assertEqual(b'a contents\n', blob.data)
|
self.assertEqual(b'a contents\n', blob.data)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user