aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/test_RollbackDebianGitRepository.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_RollbackDebianGitRepository.py')
-rw-r--r--tests/test_RollbackDebianGitRepository.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/test_RollbackDebianGitRepository.py b/tests/test_RollbackDebianGitRepository.py
new file mode 100644
index 00000000..1c23d525
--- /dev/null
+++ b/tests/test_RollbackDebianGitRepository.py
@@ -0,0 +1,51 @@
+# vim: set fileencoding=utf-8 :
+"""Test L{gbp.deb.rollbackgit}"""
+
+import os
+
+from . testutils import DebianGitTestRepo
+from gbp.deb.rollbackgit import RollbackDebianGitRepository
+from gbp.git.repository import GitRepositoryError
+
+
+class TestRollbackGitRepository(DebianGitTestRepo):
+
+ def setUp(self):
+ DebianGitTestRepo.setUp(self, RollbackDebianGitRepository)
+
+ def test_empty_rollback(self):
+ self.repo.rollback()
+ self.assertEquals(self.repo.rollback_errors, [])
+
+ def test_rrr_tag(self):
+ self.repo.rrr_tag('doesnotexist')
+ self.assertEquals(self.repo.rollbacks, [('doesnotexist', 'tag', 'delete', None)])
+ self.repo.rollback()
+ self.assertEquals(self.repo.rollback_errors, [])
+
+ def test_rrr_branch(self):
+ self.repo.rrr_branch('doesnotexist', 'delete')
+ self.assertEquals(self.repo.rollbacks, [('doesnotexist', 'branch', 'delete', None)])
+ self.repo.rollback()
+ self.assertEquals(self.repo.rollback_errors, [])
+
+ def test_rrr_merge(self):
+ self.repo.rrr_merge('HEAD')
+ self.assertEquals(self.repo.rollbacks, [('HEAD', 'commit', 'abortmerge', None)])
+ self.repo.rollback()
+ self.assertEquals(self.repo.rollback_errors, [])
+
+ def test_rrr_merge_abort(self):
+ self.repo.rrr_merge('HEAD')
+ self.assertEquals(self.repo.rollbacks, [('HEAD', 'commit', 'abortmerge', None)])
+ # Test that we abort the merge in case MERGE_HEAD exists
+ with open(os.path.join(self.repo.git_dir, 'MERGE_HEAD'), 'w'):
+ pass
+ self.assertTrue(self.repo.is_in_merge())
+ self.repo.rollback()
+ self.assertFalse(self.repo.is_in_merge())
+ self.assertEquals(self.repo.rollback_errors, [])
+
+ def test_rrr_unknown_action(self):
+ with self.assertRaisesRegexp(GitRepositoryError, "Unknown action unknown for tag doesnotmatter"):
+ self.repo.rrr('doesnotmatter', 'unknown', 'tag')