23
23
except ImportError:
27
from bzrtools import cmd_baz_import
28
from bzrtools.baz_import import (import_version, revision_id,
29
make_archive, map_file_id)
31
from bzrlib.plugins.bzrtools import cmd_baz_import
32
from bzrlib.plugins.bzrtools.baz_import import (import_version,
26
from bzrlib.plugins.bzrtools import cmd_baz_import
27
from bzrlib.plugins.bzrtools.baz_import import (import_version,
37
32
from StringIO import StringIO
39
34
from testresources import (TestResource, TestLoader, OptimisingTestSuite,
43
38
from bzrlib.errors import NoSuchRevision
45
from bzrtools.fai import namespace_previous
47
from bzrlib.plugins.bzrtools.fai import namespace_previous
39
from bzrlib.plugins.bzrtools.fai import namespace_previous
48
40
from bzrlib.branch import Branch
308
300
# and we should get some expected values:
309
301
self.assertEqual(rev.committer, "Test User<test@example.org>")
310
self.assertEqual(rev.message,
302
self.assertEqual(rev.message,
311
303
"tag of demo@DONOTUSE/c--import--0--base-0")
312
304
self.assertEqual(rev.revision_id, self._baz._empty_tag_bzr)
314
306
def test_empty_merged_tagged(self):
315
import_version('output', pybaz.Version(self._baz._empty_merged_tag),
307
import_version('output', pybaz.Version(self._baz._empty_merged_tag),
317
309
# expected results:
318
# two commits, no files, revision identifiers of
310
# two commits, no files, revision identifiers of
319
311
# 'demo@DONOTUSE_c--import--0--base-0' and
320
312
# self._baz._empty_merged_tag_bzr_base
321
313
# self._baz._empty_merged_tag_bzr
328
320
self._baz._empty_merged_tag_bzr_base,
329
321
self._baz._empty_merged_tag_bzr])
331
import_version('output2', pybaz.Version(self._baz._empty_merged_tag),
323
import_version('output2', pybaz.Version(self._baz._empty_merged_tag),
333
325
branch2 = Branch.open('output2')
334
326
repo2 = branch2.repository
335
327
# and import what we should be merged up against for checking with.
336
328
import_version('output3', pybaz.Version(self._baz._empty_tag), None)
337
329
branch3 = Branch.open('output3')
339
331
self.assertEqual(branch.revision_history(), branch2.revision_history())
340
self.assertNotEqual(branch.revision_history(),
332
self.assertNotEqual(branch.revision_history(),
341
333
branch3.revision_history())
342
334
# check revisions in the history.
343
335
rev = repo.get_revision(self._baz._empty_merged_tag_bzr_base)
365
357
self._baz._empty_merged_tag_bzr_base)
366
358
self.assertEqual(rev.parent_ids[1], self._baz._empty_tag_bzr)
368
# this tree should have nothing missing from that tree.
360
# this tree should have nothing missing from that tree.
369
361
# FIXME there is no code for this right now.
370
362
# self.assertEqual(branch.missing_revisions(branch3), [])
372
364
def test_merge_branch_with_merges(self):
373
import_version('output', pybaz.Version(self._baz._empty_merged_tag_2),
365
import_version('output', pybaz.Version(self._baz._empty_merged_tag_2),
375
367
# expected results:
376
# two commits, no files, revision identifiers of
368
# two commits, no files, revision identifiers of
377
369
# 'demo@DONOTUSE_c--import--0--base-0' and
378
370
# self._baz._empty_merged_tag_2_bzr_base
379
371
# self._baz._empty_merged_tag_2_bzr
424
416
self.assertEqual(rev.parent_ids[1],
425
417
self._baz._empty_merged_tag_bzr)
427
# this tree should have nothing missing from that tree.
419
# this tree should have nothing missing from that tree.
428
420
# FIXME there is no code for this right now.
429
421
# self.assertEqual(branch.missing_revisions(branch3), [])
431
423
def test_import_symlink(self):
432
import_version('output', pybaz.Version(self._baz._import_symlink),
424
import_version('output', pybaz.Version(self._baz._import_symlink),
433
425
None, max_count=1)
434
426
# expected results:
435
# two commits, no files, revision identifier of
427
# two commits, no files, revision identifier of
436
428
# 'demo@DONOTUSE_c--import--0--base-0'
437
429
branch = Branch.open('output')
438
430
self.assertEqual(branch.revision_history(),
459
451
self.assertEqual(entry.kind, 'symlink')
460
452
self.assertEqual(entry.symlink_target, 'missing-file-name')
462
# current bzr doesn't handle type changes
463
self.assertRaises(AssertionError, import_version, 'output3',
464
pybaz.Version(self._baz._import_symlink), None)
454
# Test kind change for import
455
import_version('output3', pybaz.Version(self._baz._import_symlink),
466
458
def test_missing_ancestor(self):
467
459
import_version('output', pybaz.Version(self._baz._missing_ancestor),
469
461
# expected results:
470
# one commits, no files, revision identifiers of
462
# one commits, no files, revision identifiers of
471
463
# 'demo@DONOTUSE_c--gone--0--base-0' and
472
464
# a merge of demo-gone@DONOTUSE%c--import--0
473
465
branch = Branch.open('output')
486
478
# and we should get some expected values:
487
479
self.assertEqual(rev.committer, "Test User<test@example.org>")
488
self.assertEqual(rev.message,
480
self.assertEqual(rev.message,
489
481
"tag of demo-gone@DONOTUSE/c--import--0--base-0")
490
482
self.assertEqual(rev.revision_id, self._baz._missing_ancestor_bzr)
491
483
self.assertEqual(rev.parent_ids[0], self._baz._missing_import_bzr)
492
484
self.assertEqual(1, len(rev.parent_ids))
494
486
# must NOT be able to get the merged evision
495
self.assertRaises(NoSuchRevision, branch.repository.get_revision,
487
self.assertRaises(NoSuchRevision, branch.repository.get_revision,
496
488
self._baz._missing_import_bzr)
498
490
def test_missing_ancestor_reusing_history(self):
757
749
command = cmd_baz_import()
758
750
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
759
751
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output')))
760
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
752
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
762
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
754
self.failUnless(os.path.exists(os.path.join(self._tmpdir,'output',
763
755
'c1', '0.2','branch')))
764
756
default_format = repository.RepositoryFormat.get_default_format()
765
if getattr(default_format, 'rich_root_data', False):
769
757
walk_len = len(list(os.walk(os.path.join(self._tmpdir,'output'))))
770
self.assertEqual(num_files, walk_len)
758
self.assertEqual(22, walk_len)
772
760
def test_run_twice(self):
773
761
self.make_import('c--0')
774
762
command = cmd_baz_import()
775
763
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
776
764
command.run(os.path.join(self._tmpdir, 'output'), 'demo@DONOTUSE')
778
766
def test_accepts_reuse_history(self):
779
767
self.make_import('c--0')
780
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
781
'demo@DONOTUSE', '.', '.')
783
def test_does_not_need_reuse_history(self):
784
self.make_import('c--0')
785
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
788
def test_does_not_need_reuse_history(self):
789
self.make_import('c--0')
790
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
768
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output'),
769
'demo@DONOTUSE', '.', '.'])
771
def test_does_not_need_reuse_history(self):
772
self.make_import('c--0')
773
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output'),
776
def test_does_not_need_reuse_history(self):
777
self.make_import('c--0')
778
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output'),
793
781
def test_encoding_flag(self):
794
782
self.make_import('c--0')
795
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output'),
797
self.assertEqual(['Arch-1:demo@DONOTUSE%c--0--base-0'],
798
Branch.open(os.path.join(self._tmpdir,
783
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output'),
785
self.assertEqual(['Arch-1:demo@DONOTUSE%c--0--base-0'],
786
Branch.open(os.path.join(self._tmpdir,
799
787
'output/c/+trunk')).revision_history())
800
self.run_bzr('baz-import', os.path.join(self._tmpdir, 'output2'),
801
'demo@DONOTUSE', '--encoding', 'utf-8')
802
self.assertEqual(['Arch-1-utf-8:demo@DONOTUSE%c--0--base-0'],
803
Branch.open(os.path.join(self._tmpdir,
788
self.run_bzr(['baz-import', os.path.join(self._tmpdir, 'output2'),
789
'demo@DONOTUSE', '--encoding', 'utf-8'])
790
self.assertEqual(['Arch-1-utf-8:demo@DONOTUSE%c--0--base-0'],
791
Branch.open(os.path.join(self._tmpdir,
804
792
'output2/c/+trunk')).revision_history())
805
self.run_bzr('baz-import-branch', os.path.join(self._tmpdir, 'output3'),
806
'demo@DONOTUSE/c--0')
807
self.assertEqual(['Arch-1:demo@DONOTUSE%c--0--base-0'],
808
Branch.open(os.path.join(self._tmpdir,
793
self.run_bzr(['baz-import-branch', os.path.join(self._tmpdir,
794
'output3'), 'demo@DONOTUSE/c--0'])
795
self.assertEqual(['Arch-1:demo@DONOTUSE%c--0--base-0'],
796
Branch.open(os.path.join(self._tmpdir,
809
797
'output3')).revision_history())
810
self.run_bzr('baz-import-branch', os.path.join(self._tmpdir,
811
'output4'), 'demo@DONOTUSE/c--0', '--encoding', 'utf-8')
812
self.assertEqual(['Arch-1-utf-8:demo@DONOTUSE%c--0--base-0'],
813
Branch.open(os.path.join(self._tmpdir,
798
self.run_bzr(['baz-import-branch', os.path.join(self._tmpdir,
799
'output4'), 'demo@DONOTUSE/c--0', '--encoding', 'utf-8'])
800
self.assertEqual(['Arch-1-utf-8:demo@DONOTUSE%c--0--base-0'],
801
Branch.open(os.path.join(self._tmpdir,
814
802
'output4')).revision_history())