57
53
class TestGitBranch(tests.TestCaseInTempDir):
55
_test_needs_features = [tests.GitCommandFeature]
59
57
def test_open_existing(self):
62
thebranch = d.create_branch()
60
thebranch = Branch.open('.')
63
61
self.assertIsInstance(thebranch, branch.GitBranch)
65
63
def test_repr(self):
68
thebranch = d.create_branch()
69
self.assertEquals("<LocalGitBranch('file://%s/', 'HEAD')>" % self.test_dir, repr(thebranch))
65
thebranch = Branch.open('.')
66
self.assertEquals("LocalGitBranch('file://%s/', 'HEAD')" % self.test_dir, repr(thebranch))
71
68
def test_last_revision_is_null(self):
73
thedir = BzrDir.open('.')
74
thebranch = thedir.create_branch()
71
thebranch = Branch.open('.')
75
72
self.assertEqual(revision.NULL_REVISION, thebranch.last_revision())
76
73
self.assertEqual((0, revision.NULL_REVISION),
77
74
thebranch.last_revision_info())
79
76
def simple_commit_a(self):
81
78
self.build_tree(['a'])
83
return r.do_commit("a", committer="Somebody <foo@example.com>")
79
tests.run_git('add', 'a')
80
tests.run_git('commit', '-m', 'a')
85
82
def test_last_revision_is_valid(self):
86
head = self.simple_commit_a()
83
self.simple_commit_a()
84
head = tests.run_git('rev-parse', 'HEAD').strip()
87
86
thebranch = Branch.open('.')
88
87
self.assertEqual(default_mapping.revision_id_foreign_to_bzr(head),
89
88
thebranch.last_revision())
91
90
def test_revision_history(self):
92
reva = self.simple_commit_a()
91
self.simple_commit_a()
92
reva = tests.run_git('rev-parse', 'HEAD').strip()
93
93
self.build_tree(['b'])
96
revb = r.do_commit("b", committer="Somebody <foo@example.com>")
94
tests.run_git('add', 'b')
95
tests.run_git('commit', '-m', 'b')
96
revb = tests.run_git('rev-parse', 'HEAD').strip()
98
98
thebranch = Branch.open('.')
99
99
self.assertEqual([default_mapping.revision_id_foreign_to_bzr(r) for r in (reva, revb)],
100
100
thebranch.revision_history())
102
102
def test_tag_annotated(self):
103
reva = self.simple_commit_a()
106
o.tagger = "Jelmer <foo@example.com>"
107
o.message = "add tag"
108
o.object = (Commit, reva)
112
r.object_store.add_object(o)
113
r['refs/tags/foo'] = o.id
103
self.simple_commit_a()
104
reva = tests.run_git('rev-parse', 'HEAD').strip()
105
tests.run_git('tag', '-a', '-m', 'add tag', 'foo')
114
106
thebranch = Branch.open('.')
115
107
self.assertEquals({"foo": default_mapping.revision_id_foreign_to_bzr(reva)},
116
108
thebranch.tags.get_tag_dict())
118
110
def test_tag(self):
119
reva = self.simple_commit_a()
121
r.refs["refs/tags/foo"] = reva
111
self.simple_commit_a()
112
reva = tests.run_git('rev-parse', 'HEAD').strip()
113
tests.run_git('tag', '-m', 'add tag', 'foo')
122
114
thebranch = Branch.open('.')
123
115
self.assertEquals({"foo": default_mapping.revision_id_foreign_to_bzr(reva)},
124
116
thebranch.tags.get_tag_dict())
128
120
class TestWithGitBranch(tests.TestCaseWithTransport):
131
123
tests.TestCaseWithTransport.setUp(self)
132
124
dulwich.repo.Repo.create(self.test_dir)
133
d = BzrDir.open(self.test_dir)
134
self.git_branch = d.create_branch()
125
self.git_branch = Branch.open(self.test_dir)
136
127
def test_get_parent(self):
137
128
self.assertIs(None, self.git_branch.get_parent())
139
130
def test_get_stacked_on_url(self):
140
self.assertRaises(errors.UnstackableBranchFormat,
131
self.assertRaises(errors.UnstackableBranchFormat,
141
132
self.git_branch.get_stacked_on_url)
143
134
def test_get_physical_lock_status(self):