56
57
def test_open_existing(self):
59
thebranch = Branch.open('.')
60
thebranch = d.create_branch()
60
61
self.assertIsInstance(thebranch, branch.GitBranch)
62
63
def test_repr(self):
64
thebranch = Branch.open('.')
65
self.assertEquals("LocalGitBranch('file://%s/', 'HEAD')" % self.test_dir, repr(thebranch))
66
thebranch = d.create_branch()
67
self.assertEquals("<LocalGitBranch('file://%s/', 'HEAD')>" % self.test_dir, repr(thebranch))
67
69
def test_last_revision_is_null(self):
70
thebranch = Branch.open('.')
71
thedir = BzrDir.open('.')
72
thebranch = thedir.create_branch()
71
73
self.assertEqual(revision.NULL_REVISION, thebranch.last_revision())
72
74
self.assertEqual((0, revision.NULL_REVISION),
73
75
thebranch.last_revision_info())
114
115
self.assertEquals({"foo": default_mapping.revision_id_foreign_to_bzr(reva)},
115
116
thebranch.tags.get_tag_dict())
119
120
class TestWithGitBranch(tests.TestCaseWithTransport):
122
123
tests.TestCaseWithTransport.setUp(self)
123
124
dulwich.repo.Repo.create(self.test_dir)
124
self.git_branch = Branch.open(self.test_dir)
125
d = BzrDir.open(self.test_dir)
126
self.git_branch = d.create_branch()
126
128
def test_get_parent(self):
127
129
self.assertIs(None, self.git_branch.get_parent())
129
131
def test_get_stacked_on_url(self):
130
self.assertRaises(errors.UnstackableBranchFormat,
132
self.assertRaises(errors.UnstackableBranchFormat,
131
133
self.git_branch.get_stacked_on_url)
133
135
def test_get_physical_lock_status(self):
143
145
def test_get_format_description(self):
144
146
self.assertEquals("Git Branch", self.format.get_format_description())
148
def test_get_network_name(self):
149
self.assertEquals("git", self.format.network_name())
151
def test_supports_tags(self):
152
self.assertTrue(self.format.supports_tags())
148
155
class BranchTests(tests.TestCaseInTempDir):
159
166
return "d", gitsha
168
def make_tworev_branch(self):
172
bb = tests.GitBranchBuilder()
173
bb.set_file("foobar", "foo\nbar\n", False)
174
mark1 = bb.commit("Somebody <somebody@someorg.org>", "mymsg")
175
mark2 = bb.commit("Somebody <somebody@someorg.org>", "mymsg")
178
return "d", (marks[mark1], marks[mark2])
161
180
def clone_git_branch(self, from_url, to_url):
162
181
from_dir = BzrDir.open(from_url)
163
182
to_dir = from_dir.sprout(to_url)
181
200
self.assertEquals({"lala": revid}, newbranch.tags.get_tag_dict())
182
201
self.assertEquals([revid], newbranch.repository.all_revision_ids())
203
def test_interbranch_pull(self):
204
path, (gitsha1, gitsha2) = self.make_tworev_branch()
205
oldrepo = Repository.open(path)
206
revid2 = oldrepo.get_mapping().revision_id_foreign_to_bzr(gitsha2)
207
newbranch = self.make_branch('g')
208
inter_branch = InterBranch.get(Branch.open(path), newbranch)
210
self.assertEquals(revid2, newbranch.last_revision())
212
def test_interbranch_pull_noop(self):
213
path, (gitsha1, gitsha2) = self.make_tworev_branch()
214
oldrepo = Repository.open(path)
215
revid2 = oldrepo.get_mapping().revision_id_foreign_to_bzr(gitsha2)
216
newbranch = self.make_branch('g')
217
inter_branch = InterBranch.get(Branch.open(path), newbranch)
219
# This is basically "assertNotRaises"
221
self.assertEquals(revid2, newbranch.last_revision())
223
def test_interbranch_pull_stop_revision(self):
224
path, (gitsha1, gitsha2) = self.make_tworev_branch()
225
oldrepo = Repository.open(path)
226
revid1 = oldrepo.get_mapping().revision_id_foreign_to_bzr(gitsha1)
227
newbranch = self.make_branch('g')
228
inter_branch = InterBranch.get(Branch.open(path), newbranch)
229
inter_branch.pull(stop_revision=revid1)
230
self.assertEquals(revid1, newbranch.last_revision())
232
def test_interbranch_limited_pull(self):
233
path, (gitsha1, gitsha2) = self.make_tworev_branch()
234
oldrepo = Repository.open(path)
235
revid1 = oldrepo.get_mapping().revision_id_foreign_to_bzr(gitsha1)
236
revid2 = oldrepo.get_mapping().revision_id_foreign_to_bzr(gitsha2)
237
newbranch = self.make_branch('g')
238
inter_branch = InterBranch.get(Branch.open(path), newbranch)
239
inter_branch.pull(limit=1)
240
self.assertEquals(revid1, newbranch.last_revision())
241
inter_branch.pull(limit=1)
242
self.assertEquals(revid2, newbranch.last_revision())
185
245
class ForeignTestsBranchFactory(object):
187
247
def make_empty_branch(self, transport):
188
return LocalGitBzrDirFormat().initialize_on_transport(transport).open_branch()
248
d = LocalGitBzrDirFormat().initialize_on_transport(transport)
249
return d.create_branch()
190
251
make_branch = make_empty_branch