diff options
Diffstat (limited to 'test/git/test_remote.py')
-rw-r--r-- | test/git/test_remote.py | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/test/git/test_remote.py b/test/git/test_remote.py new file mode 100644 index 00000000..2446710f --- /dev/null +++ b/test/git/test_remote.py @@ -0,0 +1,89 @@ +# test_remote.py +# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors +# +# This module is part of GitPython and is released under +# the BSD License: http://www.opensource.org/licenses/bsd-license.php + +from test.testlib import * +from git import * + +class TestRemote(TestCase): + + @classmethod + def setUpAll(cls): + cls.repo = Repo(GIT_REPO) + + def test_base(self): + num_remotes = 0 + remote_set = set() + for remote in self.repo.remotes: + num_remotes += 1 + assert remote == remote + assert str(remote) != repr(remote) + remote_set.add(remote) + remote_set.add(remote) # should already exist + + # REFS + refs = remote.refs + assert refs + for ref in refs: + assert ref.remote_name == remote.name + assert ref.remote_branch + # END for each ref + + # OPTIONS + for opt in ("url", "fetch"): + val = getattr(remote, opt) + reader = remote.config_reader + assert reader.get(opt) == val + + # unable to write with a reader + self.failUnlessRaises(IOError, reader.set, opt, "test") + + # change value + writer = remote.config_writer + new_val = "myval" + writer.set(opt, new_val) + assert writer.get(opt) == new_val + writer.set(opt, val) + assert writer.get(opt) == val + del(writer) + assert getattr(remote, opt) == val + # END for each default option key + + # RENAME + other_name = "totally_other_name" + prev_name = remote.name + assert remote.rename(other_name) == remote + assert prev_name != remote.name + # multiple times + for time in range(2): + assert remote.rename(prev_name).name == prev_name + # END for each rename ( back to prev_name ) + + remote.update() + + # END for each remote + assert num_remotes + assert num_remotes == len(remote_set) + + + def test_creation_and_removal(self): + new_name = "test_new_one" + arg_list = (new_name, "git@server:hello.git") + remote = Remote.create(self.repo, *arg_list ) + assert remote.name == "test_new_one" + + # create same one again + self.failUnlessRaises(GitCommandError, Remote.create, self.repo, *arg_list) + + Remote.remove(self.repo, new_name) + + for remote in self.repo.remotes: + if remote.name == new_name: + raise AssertionError("Remote removal failed") + # END if deleted remote matches existing remote's name + # END for each remote + + + |