diff --git a/src/reference.c b/src/reference.c index c48167c..b89f023 100644 --- a/src/reference.c +++ b/src/reference.c @@ -205,10 +205,7 @@ Reference_resolve(Reference *self, PyObject *args) PyDoc_STRVAR(Reference_target__doc__, "The reference target: If direct the value will be an Oid object, if it\n" "is symbolic it will be an string with the full name of the target\n" - "reference.\n" - "\n" - "The target is writable. Setting the Reference's target to another Oid\n" - "object will direct the reference to that Oid instead."); + "reference.\n"); PyObject * Reference_target__get__(Reference *self) @@ -230,17 +227,6 @@ Reference_target__get__(Reference *self) return to_path(c_name); } -int -Reference_target__set__(Reference *self, PyObject *py_target) -{ - CHECK_REFERENCE_INT(self); - - if (!PyObject_CallMethod(self, "set_target", "O", py_target)) - return -1; - - return 0; -} - PyDoc_STRVAR(Reference_set_target__doc__, "set_target(target, [signature, message])\n" "\n" @@ -499,7 +485,7 @@ PyMethodDef Reference_methods[] = { PyGetSetDef Reference_getseters[] = { GETTER(Reference, name), GETTER(Reference, shorthand), - GETSET(Reference, target), + GETTER(Reference, target), GETTER(Reference, type), {NULL} }; diff --git a/test/test_refs.py b/test/test_refs.py index 0757b7a..35aea55 100644 --- a/test/test_refs.py +++ b/test/test_refs.py @@ -31,7 +31,7 @@ from __future__ import absolute_import from __future__ import unicode_literals import unittest -from pygit2 import GitError, GIT_REF_OID, GIT_REF_SYMBOLIC +from pygit2 import GitError, GIT_REF_OID, GIT_REF_SYMBOLIC, Signature from . import utils @@ -77,13 +77,13 @@ class ReferencesTest(utils.RepoTestCase): def test_reference_set_sha(self): NEW_COMMIT = '5ebeeebb320790caf276b9fc8b24546d63316533' reference = self.repo.lookup_reference('refs/heads/master') - reference.target = NEW_COMMIT + reference.set_target(NEW_COMMIT) self.assertEqual(reference.target.hex, NEW_COMMIT) def test_reference_set_sha_prefix(self): NEW_COMMIT = '5ebeeebb320790caf276b9fc8b24546d63316533' reference = self.repo.lookup_reference('refs/heads/master') - reference.target = NEW_COMMIT[0:6] + reference.set_target(NEW_COMMIT[0:6]) self.assertEqual(reference.target.hex, NEW_COMMIT) @@ -100,7 +100,7 @@ class ReferencesTest(utils.RepoTestCase): def test_set_target(self): reference = self.repo.lookup_reference('HEAD') self.assertEqual(reference.target, 'refs/heads/master') - reference.target = 'refs/heads/i18n' + reference.set_target('refs/heads/i18n') self.assertEqual(reference.target, 'refs/heads/i18n') def test_get_shorthand(self): @@ -109,6 +109,16 @@ class ReferencesTest(utils.RepoTestCase): reference = self.repo.create_reference('refs/remotes/origin/master', LAST_COMMIT) self.assertEqual(reference.shorthand, 'origin/master') + def test_set_target_with_message(self): + reference = self.repo.lookup_reference('HEAD') + self.assertEqual(reference.target, 'refs/heads/master') + sig = Signature('foo', 'bar') + msg = 'Hello log' + reference.set_target('refs/heads/i18n', signature=sig, message=msg) + self.assertEqual(reference.target, 'refs/heads/i18n') + self.assertEqual(list(reference.log())[0].message, msg) + self.assertEqualSignature(list(reference.log())[0].committer, sig) + def test_delete(self): repo = self.repo @@ -124,8 +134,6 @@ class ReferencesTest(utils.RepoTestCase): self.assertRaises(GitError, getattr, reference, 'name') self.assertRaises(GitError, getattr, reference, 'type') self.assertRaises(GitError, getattr, reference, 'target') - self.assertRaises(GitError, setattr, reference, 'target', LAST_COMMIT) - self.assertRaises(GitError, setattr, reference, 'target', "a/b/c") self.assertRaises(GitError, reference.delete) self.assertRaises(GitError, reference.resolve) self.assertRaises(GitError, reference.rename, "refs/tags/version2")