aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2011-12-29 12:33:13 +0100
committerGuido Günther <agx@sigxcpu.org>2011-12-29 12:46:17 +0100
commit479b933c55228cba29bae9cfa50930bb1ff32f00 (patch)
tree6c5eef35b82071865be4bb781021169606e284e8 /tests
parent77846d4e09e8b2f5f977e51bb753f6f7968b38b2 (diff)
GitRepository: Add testcases for cornercases
and small functions Git-Dch: Ignore
Diffstat (limited to 'tests')
-rw-r--r--tests/test_GitRepository.py131
1 files changed, 129 insertions, 2 deletions
diff --git a/tests/test_GitRepository.py b/tests/test_GitRepository.py
index 8ba75e17..a2be74ee 100644
--- a/tests/test_GitRepository.py
+++ b/tests/test_GitRepository.py
@@ -128,9 +128,12 @@ def test_delete_branch():
>>> repo = gbp.git.GitRepository(repo_dir)
>>> repo.create_branch("bar")
>>> repo.delete_branch("bar")
+ >>> repo.delete_branch("master")
+ Traceback (most recent call last):
+ ...
+ GitRepositoryError: Can't delete the branch you're on
"""
-
def test_set_branch():
"""
Switch to branch named I{foo}
@@ -313,8 +316,11 @@ def test_clone():
- L{gbp.git.GitRepository.is_empty}
- L{gbp.git.GitRepository.set_branch}
- L{gbp.git.GitRepository.branch}
+ - L{gbp.git.GitRepository.get_merge_branch}
- L{gbp.git.GitRepository.get_remote_branches}
- L{gbp.git.GitRepository.get_local_branches}
+ - L{gbp.git.GitRepository.get_remote_repos}
+ - L{gbp.git.GitRepository.has_remote_repo}
>>> import gbp.git
>>> repo = gbp.git.GitRepository(repo_dir)
@@ -333,8 +339,16 @@ def test_clone():
>>> clone.create_branch('foo', 'origin/foo')
>>> clone.get_merge_branch('foo')
'origin/foo'
+ >>> clone.create_branch('bar')
+ >>> clone.get_merge_branch('bar') # None if no merge branch exists
>>> clone.get_local_branches()
- ['foo', 'master']
+ ['bar', 'foo', 'master']
+ >>> clone.get_remote_repos()
+ ['origin']
+ >>> clone.has_remote_repo('origin')
+ True
+ >>> clone.has_remote_repo('godiug')
+ False
"""
def test_merge():
@@ -401,6 +415,34 @@ def test_create_bare():
(True, '')
"""
+def test_nonexistant():
+ """
+ Check that accessing a non existant repository fails.
+
+ Methods tested:
+ - L{gbp.git.GitRepository.__init__}
+
+ >>> import gbp.git
+ >>> bare = gbp.git.GitRepository("/does/not/exist")
+ Traceback (most recent call last):
+ ...
+ GitRepositoryError: No Git repository at '/does/not/exist'
+ """
+
+def test_create_noperm():
+ """
+ Check that creating a repository at a path that isn't writeable fails
+
+ Methods tested:
+ - L{gbp.git.GitRepository.create}
+
+ >>> import gbp.git
+ >>> gbp.git.GitRepository.create("/does/not/exist")
+ Traceback (most recent call last):
+ ...
+ GitRepositoryError: Cannot create Git repository at '/does/not/exist': Permission denied
+ """
+
def test_checkout():
"""
Checkout treeishs
@@ -420,6 +462,10 @@ def test_checkout():
>>> repo.checkout('master')
>>> repo.branch
'master'
+ >>> repo.rev_parse('doesnotexist')
+ Traceback (most recent call last):
+ ...
+ GitRepositoryError: revision 'doesnotexist' not found
>>> sha1 = repo.rev_parse('master')
>>> repo.checkout(sha1)
>>> repo.branch
@@ -432,6 +478,87 @@ def test_checkout():
>>> repo.branch
"""
+def test_gc():
+ """
+ Test garbace collection
+
+ Methods tested:
+ - L{gbp.git.GitRepository.collect_garbage}
+
+ >>> import gbp.git
+ >>> repo = gbp.git.GitRepository(repo_dir)
+ >>> repo.collect_garbage()
+ """
+
+def test_grep():
+ """
+ Test grepping through commit messages
+
+ Methods tested:
+ - L{gbp.git.GitRepository.grep_log}
+
+ >>> import gbp.git
+ >>> repo = gbp.git.GitRepository(repo_dir)
+ >>> repo.set_branch('master')
+ >>> len(repo.grep_log('foo')) == 2
+ True
+ >>> len(repo.grep_log('foo', 'master')) == 2
+ True
+ >>> repo.grep_log('blafasel')
+ []
+ >>> repo.grep_log('foo', 'doesnotexist')
+ Traceback (most recent call last):
+ ...
+ GitRepositoryError: Error grepping log for foo
+ """
+
+def test_is_ff():
+ """
+ Test if branch is fast forwardable
+
+ Methods tested:
+ - L{gbp.git.GitRepository.is_fast_forward}
+
+ >>> import gbp.git
+ >>> repo = gbp.git.GitRepository(repo_dir)
+ >>> repo.is_fast_forward('master', 'foo')
+ (True, True)
+ >>> repo.create_branch('ff', 'HEAD^')
+ >>> repo.is_fast_forward('ff', 'master')
+ (True, False)
+ >>> repo.is_fast_forward('master', 'ff')
+ (False, True)
+ """
+
+def test_update_ref():
+ """
+ Test updating a reference
+
+ Methods tested:
+ - L{gbp.git.GitRepository.update_ref}
+
+ >>> import gbp.git, os
+ >>> repo = gbp.git.GitRepository(repo_dir)
+ >>> repo.update_ref('new_ref', 'master', msg='update')
+ >>> os.path.exists(os.path.join(repo.git_dir, 'new_ref'))
+ True
+ """
+
+def test_update_submodules():
+ """
+ Updating submodules if we don't have any is a noop
+
+ Methods tested:
+ - L{gbp.git.GitRepository.has_submodules}
+ - L{gbp.git.GitRepository.update_submodules}
+
+ >>> import gbp.git
+ >>> repo = gbp.git.GitRepository(repo_dir)
+ >>> repo.has_submodules()
+ False
+ >>> repo.update_submodules()
+ """
+
def test_teardown():
"""
Perform the teardown