added functionality to rename remotes

This commit is contained in:
Nico von Geyso 2013-02-16 18:30:39 +01:00
parent bc2bb9fc26
commit ffaf0d5ada
2 changed files with 30 additions and 1 deletions

@ -71,6 +71,25 @@ Remote_name__get__(Remote *self)
return PyUnicode_FromString(git_remote_name(self->remote));
}
int
Remote_name__set__(Remote *self, PyObject* py_name)
{
int err;
char* name;
name = py_str_to_c_str(py_name, NULL);
if (name != NULL) {
err = git_remote_rename(self->remote, name, NULL, NULL);
if (err == GIT_OK)
return 0;
Error_set(err);
}
return -1;
}
PyDoc_STRVAR(Remote_url__doc__, "Url of the remote refspec");
@ -82,7 +101,7 @@ Remote_url__get__(Remote *self)
PyGetSetDef Remote_getseters[] = {
GETTER(Remote, name),
GETSET(Remote, name),
GETTER(Remote, url),
{NULL}
};

@ -48,6 +48,16 @@ class RepositoryTest(utils.RepoTestCase):
self.assertRaises(ValueError,self.repo.remote_create, *(name, url))
def test_remote_rename(self):
remote = self.repo.remotes[0]
self.assertEqual(REMOTE_NAME, remote.name)
remote.name = 'new'
self.assertEqual('new', remote.name)
self.assertRaisesAssign(ValueError, remote, 'name', '')
def test_remote_list(self):
self.assertEqual(1, len(self.repo.remotes))
remote = self.repo.remotes[0]