Merge remote-tracking branch 'bors/v0.18.1'

API change:

- Rename Repository.create_blob_fromfile to Repository.create_blob_fromworkdir
This commit is contained in:
J. David Ibáñez
2013-05-01 20:37:00 +02:00
2 changed files with 46 additions and 7 deletions

View File

@@ -575,13 +575,13 @@ Repository_create_blob(Repository *self, PyObject *args)
}
PyDoc_STRVAR(Repository_create_blob_fromfile__doc__,
"create_blob_fromfile(path) -> bytes\n"
PyDoc_STRVAR(Repository_create_blob_fromworkdir__doc__,
"create_blob_fromworkdir(path) -> bytes\n"
"\n"
"Create a new blob from file.");
"Create a new blob from a file within the working directory.");
PyObject *
Repository_create_blob_fromfile(Repository *self, PyObject *args)
Repository_create_blob_fromworkdir(Repository *self, PyObject *args)
{
git_oid oid;
const char* path;
@@ -598,6 +598,29 @@ Repository_create_blob_fromfile(Repository *self, PyObject *args)
}
PyDoc_STRVAR(Repository_create_blob_fromdisk__doc__,
"create_blob_fromdisk(path) -> bytes\n"
"\n"
"Create a new blob from file.");
PyObject *
Repository_create_blob_fromdisk(Repository *self, PyObject *args)
{
git_oid oid;
const char* path;
int err;
if (!PyArg_ParseTuple(args, "s", &path))
return NULL;
err = git_blob_create_fromdisk(&oid, self->repo, path);
if (err < 0)
return Error_set(err);
return git_oid_to_python(oid.id);
}
PyDoc_STRVAR(Repository_create_commit__doc__,
"create_commit(reference, author, committer, message, tree, parents[, encoding]) -> bytes\n"
"\n"
@@ -1178,7 +1201,8 @@ Repository_lookup_note(Repository *self, PyObject* args)
PyMethodDef Repository_methods[] = {
METHOD(Repository, create_blob, METH_VARARGS),
METHOD(Repository, create_blob_fromfile, METH_VARARGS),
METHOD(Repository, create_blob_fromworkdir, METH_VARARGS),
METHOD(Repository, create_blob_fromdisk, METH_VARARGS),
METHOD(Repository, create_commit, METH_VARARGS),
METHOD(Repository, create_tag, METH_VARARGS),
METHOD(Repository, TreeBuilder, METH_VARARGS),

View File

@@ -29,6 +29,7 @@
from __future__ import absolute_import
from __future__ import unicode_literals
import os
import unittest
import pygit2
@@ -73,9 +74,9 @@ class BlobTest(utils.RepoTestCase):
self.assertEqual(len(BLOB_NEW_CONTENT), blob.size)
self.assertEqual(BLOB_NEW_CONTENT, blob.read_raw())
def test_create_blob_fromfile(self):
def test_create_blob_fromworkdir(self):
blob_oid = self.repo.create_blob_fromfile("bye.txt")
blob_oid = self.repo.create_blob_fromworkdir("bye.txt")
blob = self.repo[blob_oid]
self.assertTrue(isinstance(blob, pygit2.Blob))
@@ -90,5 +91,19 @@ class BlobTest(utils.RepoTestCase):
self.assertEqual(len(BLOB_FILE_CONTENT), blob.size)
self.assertEqual(BLOB_FILE_CONTENT, blob.read_raw())
def test_create_blob_outside_workdir(self):
path = os.path.join(os.path.dirname(__file__), 'data', self.repo_dir + '.tar')
self.assertRaises(KeyError, self.repo.create_blob_fromworkdir, path)
def test_create_blob_fromdisk(self):
path = os.path.join(os.path.dirname(__file__), 'data', self.repo_dir + '.tar')
blob_oid = self.repo.create_blob_fromdisk(path)
blob = self.repo[blob_oid]
self.assertTrue(isinstance(blob, pygit2.Blob))
self.assertEqual(pygit2.GIT_OBJ_BLOB, blob.type)
if __name__ == '__main__':
unittest.main()