55
55
os.environ['HOME'] = self._homedir
57
57
self._archiveroot = os.path.join(self._tmpdir, 'archive')
58
self._archive = pybaz.make_archive('demo@DONOTUSE', str(self._archiveroot))
58
self._archive = pybaz.make_archive('demo@DONOTUSE',
59
str(self._archiveroot))
59
60
pybaz.set_my_id("Test User<test@example.org>")
61
62
self.make_empty_import()
84
85
# tree, two commits, includes merge of other branch
85
86
self._empty_merged_tag_2 = 'demo@DONOTUSE/c--empty-tag-2--0'
86
self._empty_merged_tag_2_bzr_base = revision_id(self._empty_merged_tag_2 + '--base-0')
87
self._empty_merged_tag_2_bzr = revision_id(self._empty_merged_tag_2 + '--patch-1')
87
self._empty_merged_tag_2_bzr_base = revision_id(
88
self._empty_merged_tag_2 + '--base-0')
89
self._empty_merged_tag_2_bzr = revision_id(
90
self._empty_merged_tag_2 + '--patch-1')
88
91
pybaz.Revision('demo@DONOTUSE/c--import--0--base-0').make_continuation(
89
92
pybaz.Version(self._empty_merged_tag_2))
90
93
tree = pybaz.Revision(self._empty_merged_tag_2 + '--base-0').get (
104
107
tree = pybaz.Revision(self._bad_id_tag + '--base-0').get(
105
108
os.path.join(self._tmpdir, 'tree'))
106
109
from bzrlib.plugins.bzrtools.baz_import import add_file
107
add_file(os.path.join(self._tmpdir,'tree/path'), 'text', 'this_id/needs%escaping')
110
add_file(os.path.join(self._tmpdir,'tree/path'), 'text',
111
'this_id/needs%escaping')
108
112
msg = tree.log_message()
109
113
msg["summary"] = "commit something which needs escaping."
116
120
def make_import_symlink(self):
117
121
self._import_symlink = 'demo@DONOTUSE/c--import-symlink--0'
118
self._import_symlink_bzr = revision_id(self._import_symlink + '--base-0')
122
self._import_symlink_bzr = revision_id(
123
self._import_symlink + '--base-0')
119
124
os.mkdir(os.path.join(self._tmpdir, 'tree'))
120
125
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
121
126
self._import_symlink)
133
138
def make_empty_import(self):
134
139
self._import = 'demo@DONOTUSE/c--import--0'
135
140
os.mkdir(os.path.join(self._tmpdir, 'tree'))
136
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'), self._import)
141
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
137
143
msg = tree.log_message()
138
144
msg["summary"] = "I am importing now"
139
145
tree.import_(msg)
203
209
self.output.write("\n")
205
211
def test_import_empty(self):
206
import_version('output', pybaz.Version(self._baz._import), self.collect)
212
import_version('output', pybaz.Version(self._baz._import),
207
214
# expected results:
208
# one commit, no files, revision identifier of 'demo@DONOTUSE_c--import--0--base-0'
215
# one commit, no files, revision identifier of
216
# 'demo@DONOTUSE_c--import--0--base-0'
209
217
branch = Branch.open('output')
218
repo = branch.repository
210
219
self.assertEqual(branch.revision_history(),
211
220
['Arch-1:demo@DONOTUSE%c--import--0--base-0'])
212
rev = branch.repository.get_revision('Arch-1:demo@DONOTUSE%c--import--0--base-0')
221
rev = repo.get_revision('Arch-1:demo@DONOTUSE%c--import--0--base-0')
214
223
import_version('output2', pybaz.Version('demo@DONOTUSE/c--import--0'),
216
225
branch2 = Branch.open('output2')
226
repo2 = branch2.repository
217
227
self.assertEqual(branch.revision_history(), branch2.revision_history())
218
rev2 = branch2.repository.get_revision('Arch-1:demo@DONOTUSE%c--import--0--base-0')
228
rev2 = repo2.get_revision('Arch-1:demo@DONOTUSE%c--import--0--base-0')
219
229
# they must be the same
220
230
self.assertEqual(rev, rev2)
249
259
# and we should get some expected values:
250
260
self.assertEqual(rev.committer, "Test User<test@example.org>")
251
self.assertEqual(rev.message, "tag of demo@DONOTUSE/c--import--0--base-0")
261
self.assertEqual(rev.message,
262
"tag of demo@DONOTUSE/c--import--0--base-0")
252
263
self.assertEqual(rev.revision_id, self._baz._empty_tag_bzr)
254
265
def test_empty_merged_tagged(self):
262
273
# and a merged revision from the latter of
263
274
# self._baz._empty_tag_bzr
264
275
branch = Branch.open('output')
276
repo = branch.repository
265
277
self.assertEqual(branch.revision_history(),
266
278
['Arch-1:demo@DONOTUSE%c--import--0--base-0',
267
279
self._baz._empty_merged_tag_bzr_base,
270
282
import_version('output2', pybaz.Version(self._baz._empty_merged_tag),
272
284
branch2 = Branch.open('output2')
285
repo2 = branch2.repository
273
286
# and import what we should be merged up against for checking with.
274
287
import_version('output3', pybaz.Version(self._baz._empty_tag),
276
289
branch3 = Branch.open('output3')
278
291
self.assertEqual(branch.revision_history(), branch2.revision_history())
279
self.assertNotEqual(branch.revision_history(), branch3.revision_history())
292
self.assertNotEqual(branch.revision_history(),
293
branch3.revision_history())
280
294
# check revisions in the history.
281
rev = branch.repository.get_revision(self._baz._empty_merged_tag_bzr_base)
282
rev2 = branch2.repository.get_revision(self._baz._empty_merged_tag_bzr_base)
295
rev = repo.get_revision(self._baz._empty_merged_tag_bzr_base)
296
rev2 = repo2.get_revision(self._baz._empty_merged_tag_bzr_base)
283
297
# they must be the same
284
298
self.assertEqual(rev, rev2)
285
299
# and we should get some expected values:
286
300
self.assertEqual(rev.committer, "Test User<test@example.org>")
287
self.assertEqual(rev.message, "tag of demo@DONOTUSE/c--import--0--base-0")
301
self.assertEqual(rev.message,
302
"tag of demo@DONOTUSE/c--import--0--base-0")
288
303
self.assertEqual(rev.revision_id, self._baz._empty_merged_tag_bzr_base)
289
304
self.assertEqual(['Arch-1:demo@DONOTUSE%c--import--0--base-0'],
292
307
# check next revisions in the history.
293
rev = branch.repository.get_revision(self._baz._empty_merged_tag_bzr)
294
rev2 = branch2.repository.get_revision(self._baz._empty_merged_tag_bzr)
308
rev = repo.get_revision(self._baz._empty_merged_tag_bzr)
309
rev2 = repo2.get_revision(self._baz._empty_merged_tag_bzr)
295
310
# they must be the same
296
311
self.assertEqual(rev, rev2)
297
312
# and we should get some expected values:
317
332
# and a merged revision from the latter of
318
333
# self._baz._empty_merged_tag_bzr
319
334
branch = Branch.open('output')
335
repo = branch.repository
320
336
self.assertEqual(branch.revision_history(),
321
337
['Arch-1:demo@DONOTUSE%c--import--0--base-0',
322
338
self._baz._empty_merged_tag_2_bzr_base,
325
341
import_version('output2', pybaz.Version(self._baz._empty_merged_tag_2),
327
343
branch2 = Branch.open('output2')
344
repo2 = branch2.repository
328
345
# and import what we should be merged up against for checking with.
329
346
import_version('output3', pybaz.Version(self._baz._empty_merged_tag),
331
348
branch3 = Branch.open('output3')
333
350
self.assertEqual(branch.revision_history(), branch2.revision_history())
334
self.assertNotEqual(branch.revision_history(), branch3.revision_history())
351
self.assertNotEqual(branch.revision_history(),
352
branch3.revision_history())
335
353
# check revisions in the history.
336
rev = branch.repository.get_revision(self._baz._empty_merged_tag_2_bzr_base)
337
rev2 = branch2.repository.get_revision(self._baz._empty_merged_tag_2_bzr_base)
354
rev = repo.get_revision(self._baz._empty_merged_tag_2_bzr_base)
355
rev2 = repo2.get_revision(self._baz._empty_merged_tag_2_bzr_base)
338
356
# they must be the same
339
357
self.assertEqual(rev, rev2)
340
358
# and we should get some expected values:
341
359
self.assertEqual(rev.committer, "Test User<test@example.org>")
342
self.assertEqual(rev.message, "tag of demo@DONOTUSE/c--import--0--base-0")
343
self.assertEqual(rev.revision_id, self._baz._empty_merged_tag_2_bzr_base)
360
self.assertEqual(rev.message,
361
"tag of demo@DONOTUSE/c--import--0--base-0")
362
self.assertEqual(rev.revision_id,
363
self._baz._empty_merged_tag_2_bzr_base)
345
365
# check next revisions in the history.
346
rev = branch.repository.get_revision(self._baz._empty_merged_tag_2_bzr)
347
rev2 = branch2.repository.get_revision(self._baz._empty_merged_tag_2_bzr)
366
rev = repo.get_revision(self._baz._empty_merged_tag_2_bzr)
367
rev2 = repo2.get_revision(self._baz._empty_merged_tag_2_bzr)
348
368
# they must be the same
349
369
self.assertEqual(rev, rev2)
350
370
# and we should get some expected values:
364
384
import_version('output', pybaz.Version(self._baz._import_symlink),
366
386
# expected results:
367
# one commit, no files, revision identifier of 'demo@DONOTUSE_c--import--0--base-0'
387
# one commit, no files, revision identifier of
388
# 'demo@DONOTUSE_c--import--0--base-0'
368
389
branch = Branch.open('output')
369
390
self.assertEqual(branch.revision_history(),
370
391
[self._baz._import_symlink_bzr])
413
434
# and we should get some expected values:
414
435
self.assertEqual(rev.committer, "Test User<test@example.org>")
415
self.assertEqual(rev.message, "tag of demo-gone@DONOTUSE/c--import--0--base-0")
436
self.assertEqual(rev.message,
437
"tag of demo-gone@DONOTUSE/c--import--0--base-0")
416
438
self.assertEqual(rev.revision_id, self._baz._missing_ancestor_bzr)
417
439
self.assertEqual(rev.parent_ids[0], self._baz._missing_import_bzr)
418
440
self.assertEqual(1, len(rev.parent_ids))
450
472
# and we should get some expected values:
451
473
self.assertEqual(rev.committer, "Test User<test@example.org>")
452
self.assertEqual(rev.message, "tag of demo-gone@DONOTUSE/c--import--0--base-0")
474
self.assertEqual(rev.message,
475
"tag of demo-gone@DONOTUSE/c--import--0--base-0")
453
476
self.assertEqual(rev.revision_id, self._baz._missing_ancestor_bzr)
454
477
self.assertEqual(rev.parent_ids[0], self._baz._missing_import_bzr)
455
478
self.assertEqual(1, len(rev.parent_ids))
613
636
def make_import(self, namespace):
614
637
self._import = 'demo@DONOTUSE/%s' % namespace
615
638
os.mkdir(os.path.join(self._tmpdir, 'tree'))
616
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'), self._import)
639
tree = pybaz.init_tree(os.path.join(self._tmpdir, 'tree'),
617
641
msg = tree.log_message()
618
642
msg["summary"] = "I am importing now"
619
643
tree.import_(msg)
626
650
command = cmd_baz_import()
627
651
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
628
652
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output')))
630
len(list(os.walk(os.path.join(self._tmpdir,'output')))))
653
walk_len = len(list(os.walk(os.path.join(self._tmpdir,'output'))))
654
self.assertEqual(1, walk_len)
632
656
def test_two_branches(self):
633
657
self.make_import('c--0')
635
659
command = cmd_baz_import()
636
660
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
637
661
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output')))
638
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output', 'c','+trunk')))
639
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output', 'c1', '0.2','branch')))
641
len(list(os.walk(os.path.join(self._tmpdir,'output')))))
662
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
664
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
665
'c1', '0.2','branch')))
666
walk_len = len(list(os.walk(os.path.join(self._tmpdir,'output'))))
667
self.assertEqual(14, walk_len)
643
669
def test_run_twice(self):
644
670
self.make_import('c--0')