17
17
"""Tests for interfacing with a Git Branch"""
21
from bzrlib import branch, revision
23
from bzrlib.plugins.git import tests
19
from bzrlib import revision
20
from bzrlib.branch import Branch
24
22
from bzrlib.plugins.git import (
26
from bzrlib.plugins.git.mapping import default_mapping
27
from bzrlib.plugins.git import git
30
31
class TestGitBranch(tests.TestCaseInTempDir):
34
35
def test_open_existing(self):
35
36
tests.run_git('init')
37
thebranch = branch.Branch.open('.')
38
self.assertIsInstance(thebranch, git_branch.GitBranch)
38
thebranch = Branch.open('.')
39
self.assertIsInstance(thebranch, branch.GitBranch)
40
41
def test_last_revision_is_null(self):
41
42
tests.run_git('init')
43
thebranch = branch.Branch.open('.')
44
thebranch = Branch.open('.')
44
45
self.assertEqual(revision.NULL_REVISION, thebranch.last_revision())
45
46
self.assertEqual((0, revision.NULL_REVISION),
46
47
thebranch.last_revision_info())
49
def simple_commit_a(self):
51
self.build_tree(['a'])
52
tests.run_git('add', 'a')
53
tests.run_git('commit', '-m', 'a')
48
55
def test_last_revision_is_valid(self):
50
self.build_tree(['a'])
51
tests.run_git('add', 'a')
52
tests.run_git('commit', '-m', 'a')
56
self.simple_commit_a()
53
57
head = tests.run_git('rev-parse', 'HEAD').strip()
55
thebranch = branch.Branch.open('.')
56
self.assertEqual(ids.convert_revision_id_git_to_bzr(head),
59
thebranch = Branch.open('.')
60
self.assertEqual(default_mapping.revision_id_foreign_to_bzr(head),
57
61
thebranch.last_revision())
59
63
def test_revision_history(self):
61
self.build_tree(['a'])
62
tests.run_git('add', 'a')
63
tests.run_git('commit', '-m', 'a')
64
self.simple_commit_a()
64
65
reva = tests.run_git('rev-parse', 'HEAD').strip()
65
66
self.build_tree(['b'])
66
67
tests.run_git('add', 'b')
67
68
tests.run_git('commit', '-m', 'b')
68
69
revb = tests.run_git('rev-parse', 'HEAD').strip()
70
thebranch = branch.Branch.open('.')
71
self.assertEqual([ids.convert_revision_id_git_to_bzr(r) for r in (reva, revb)],
71
thebranch = Branch.open('.')
72
self.assertEqual([default_mapping.revision_id_foreign_to_bzr(r) for r in (reva, revb)],
72
73
thebranch.revision_history())
76
self.simple_commit_a()
77
reva = tests.run_git('rev-parse', 'HEAD').strip()
79
tests.run_git('tag', '-a', '-m', 'add tag', 'foo')
81
newid = open('.git/refs/tags/foo').read().rstrip()
83
thebranch = Branch.open('.')
84
self.assertEquals({"foo": default_mapping.revision_id_foreign_to_bzr(newid)},
85
thebranch.tags.get_tag_dict())
75
88
class TestWithGitBranch(tests.TestCaseWithTransport):