1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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')
|