added functionality to set remote urls

This commit is contained in:
Nico von Geyso 2013-02-16 18:36:38 +01:00
parent ffaf0d5ada
commit d150937068
2 changed files with 32 additions and 1 deletions

@ -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}
};

@ -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]