From d15093706802575ccc0cf9479bef944b7b4d93ba Mon Sep 17 00:00:00 2001 From: Nico von Geyso <Nico.Geyso@FU-Berlin.de> Date: Sat, 16 Feb 2013 18:36:38 +0100 Subject: [PATCH] added functionality to set remote urls --- src/remote.c | 22 +++++++++++++++++++++- test/test_remote.py | 11 +++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/remote.c b/src/remote.c index bcd66c2..f8edbc7 100644 --- a/src/remote.c +++ b/src/remote.c @@ -100,9 +100,29 @@ Remote_url__get__(Remote *self) } +int +Remote_url__set__(Remote *self, PyObject* py_url) +{ + int err; + char* url; + + url = py_str_to_c_str(py_url, NULL); + if (url != NULL) { + err = git_remote_set_url(self->remote, url); + + if (err == GIT_OK) + return 0; + + Error_set(err); + } + + return -1; +} + + PyGetSetDef Remote_getseters[] = { GETSET(Remote, name), - GETTER(Remote, url), + GETSET(Remote, url), {NULL} }; diff --git a/test/test_remote.py b/test/test_remote.py index 36f4eb5..2ca347f 100644 --- a/test/test_remote.py +++ b/test/test_remote.py @@ -58,6 +58,17 @@ class RepositoryTest(utils.RepoTestCase): self.assertRaisesAssign(ValueError, remote, 'name', '') + def test_remote_set_url(self): + remote = self.repo.remotes[0] + + self.assertEqual(REMOTE_URL, remote.url) + new_url = 'git://github.com/cholin/pygit2.git' + remote.url = new_url + self.assertEqual(new_url, remote.url) + + self.assertRaisesAssign(ValueError, remote, 'url', '') + + def test_remote_list(self): self.assertEqual(1, len(self.repo.remotes)) remote = self.repo.remotes[0]