~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_versionedfile.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-03-26 03:06:52 UTC
  • mfrom: (3287.5.10 integration)
  • Revision ID: pqm@pqm.ubuntu.com-20080326030652-vgwdkwda9mi8s200
Deprecate VersionedFile.get_parents. (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
    KnitAnnotateFactory,
40
40
    KnitPlainFactory,
41
41
    )
 
42
from bzrlib.symbol_versioning import one_four
42
43
from bzrlib.tests import TestCaseWithMemoryTransport, TestSkipped
43
44
from bzrlib.tests.http_utils import TestCaseWithWebserver
44
45
from bzrlib.trace import mutter
240
241
        new_vf = self.get_file('bar')
241
242
        for version in multiparent.topo_iter(vf):
242
243
            mpdiff = vf.make_mpdiffs([version])[0]
243
 
            new_vf.add_mpdiffs([(version, vf.get_parents(version),
 
244
            new_vf.add_mpdiffs([(version, vf.get_parent_map([version])[version],
244
245
                                 vf.get_sha1(version), mpdiff)])
245
246
            self.assertEqualDiff(vf.get_text(version),
246
247
                                 new_vf.get_text(version))
370
371
        def verify_file(f):
371
372
            self.assertEquals(f.get_lines('r1'), f.get_lines('r0'))
372
373
            self.assertEquals(f.get_lines('r1'), ['a\n', 'b\n'])
373
 
            self.assertEquals(f.get_parents('r1'), ['r0'])
374
 
    
 
374
            self.assertEqual({'r1':('r0',)}, f.get_parent_map(['r1']))
375
375
            self.assertRaises(RevisionNotPresent,
376
376
                f.clone_text, 'r2', 'rX', [])
377
377
            self.assertRaises(RevisionAlreadyPresent,
453
453
        f.add_lines('r2', [], ['a\n', 'b\n'])
454
454
        f.add_lines('r3', [], ['a\n', 'b\n'])
455
455
        f.add_lines('m', ['r0', 'r1', 'r2', 'r3'], ['a\n', 'b\n'])
456
 
        self.assertEquals(f.get_parents('m'), ['r0', 'r1', 'r2', 'r3'])
457
 
 
 
456
        self.assertEqual(['r0', 'r1', 'r2', 'r3'],
 
457
            self.applyDeprecated(one_four, f.get_parents, 'm'))
458
458
        self.assertRaises(RevisionNotPresent,
459
 
            f.get_parents, 'y')
 
459
            self.applyDeprecated, one_four, f.get_parents, 'y')
 
460
 
 
461
    def test_get_parent_map(self):
 
462
        f = self.get_file()
 
463
        f.add_lines('r0', [], ['a\n', 'b\n'])
 
464
        self.assertEqual(
 
465
            {'r0':()}, f.get_parent_map(['r0']))
 
466
        f.add_lines('r1', ['r0'], ['a\n', 'b\n'])
 
467
        self.assertEqual(
 
468
            {'r1':('r0',)}, f.get_parent_map(['r1']))
 
469
        self.assertEqual(
 
470
            {'r0':(),
 
471
             'r1':('r0',)},
 
472
            f.get_parent_map(['r0', 'r1']))
 
473
        f.add_lines('r2', [], ['a\n', 'b\n'])
 
474
        f.add_lines('r3', [], ['a\n', 'b\n'])
 
475
        f.add_lines('m', ['r0', 'r1', 'r2', 'r3'], ['a\n', 'b\n'])
 
476
        self.assertEqual(
 
477
            {'m':('r0', 'r1', 'r2', 'r3')}, f.get_parent_map(['m']))
 
478
        self.assertEqual({}, f.get_parent_map('y'))
 
479
        self.assertEqual(
 
480
            {'r0':(),
 
481
             'r1':('r0',)},
 
482
            f.get_parent_map(['r0', 'y', 'r1']))
460
483
 
461
484
    def test_annotate(self):
462
485
        f = self.get_file()
617
640
        # has_version
618
641
        # - these are ghost unaware and must not be reflect ghosts
619
642
        self.assertEqual(['notbxbfse'], vf.get_ancestry('notbxbfse'))
620
 
        self.assertEqual([], vf.get_parents('notbxbfse'))
 
643
        self.assertEqual([],
 
644
            self.applyDeprecated(one_four, vf.get_parents, 'notbxbfse'))
621
645
        self.assertEqual({'notbxbfse':()}, vf.get_graph())
622
646
        self.assertFalse(vf.has_version(parent_id_utf8))
623
647
        # we have _with_ghost apis to give us ghost information.
624
648
        self.assertEqual([parent_id_utf8, 'notbxbfse'], vf.get_ancestry_with_ghosts(['notbxbfse']))
625
649
        self.assertEqual([parent_id_utf8], vf.get_parents_with_ghosts('notbxbfse'))
626
 
        self.assertEqual({'notbxbfse':[parent_id_utf8]}, vf.get_graph_with_ghosts())
 
650
        self.assertEqual({'notbxbfse':(parent_id_utf8,)}, vf.get_graph_with_ghosts())
627
651
        self.assertTrue(vf.has_ghost(parent_id_utf8))
628
652
        # if we add something that is a ghost of another, it should correct the
629
653
        # results of the prior apis
630
654
        vf.add_lines(parent_id_utf8, [], [])
631
655
        self.assertEqual([parent_id_utf8, 'notbxbfse'], vf.get_ancestry(['notbxbfse']))
632
 
        self.assertEqual([parent_id_utf8], vf.get_parents('notbxbfse'))
 
656
        self.assertEqual({'notbxbfse':(parent_id_utf8,)},
 
657
            vf.get_parent_map(['notbxbfse']))
633
658
        self.assertEqual({parent_id_utf8:(),
634
659
                          'notbxbfse':(parent_id_utf8, ),
635
660
                          },
639
664
        self.assertEqual([parent_id_utf8, 'notbxbfse'],
640
665
            vf.get_ancestry_with_ghosts(['notbxbfse']))
641
666
        self.assertEqual([parent_id_utf8], vf.get_parents_with_ghosts('notbxbfse'))
642
 
        self.assertEqual({parent_id_utf8:[],
643
 
                          'notbxbfse':[parent_id_utf8],
 
667
        self.assertEqual({parent_id_utf8:(),
 
668
                          'notbxbfse':(parent_id_utf8,),
644
669
                          },
645
670
                         vf.get_graph_with_ghosts())
646
671
        self.assertFalse(vf.has_ghost(parent_id_utf8))
842
867
 
843
868
    def test_get_parents(self):
844
869
        self.setup_abcde()
845
 
        self.assertEqual(['A'], self.plan_merge_vf.get_parents('B'))
846
 
        self.assertEqual(['C'], self.plan_merge_vf.get_parents('D'))
847
 
        self.assertEqual(['B', 'D'], self.plan_merge_vf.get_parents('E:'))
848
 
        error = self.assertRaises(errors.RevisionNotPresent,
849
 
                                  self.plan_merge_vf.get_parents, 'F')
850
 
        self.assertContainsRe(str(error), '{F} not present in "root"')
 
870
        self.assertEqual({'B':('A',)}, self.plan_merge_vf.get_parent_map(['B']))
 
871
        self.assertEqual({'D':('C',)}, self.plan_merge_vf.get_parent_map(['D']))
 
872
        self.assertEqual({'E:':('B', 'D')},
 
873
            self.plan_merge_vf.get_parent_map(['E:']))
 
874
        self.assertEqual({}, self.plan_merge_vf.get_parent_map(['F']))
 
875
        self.assertEqual({
 
876
                'B':('A',),
 
877
                'D':('C',),
 
878
                'E:':('B', 'D'),
 
879
                }, self.plan_merge_vf.get_parent_map(['B', 'D', 'E:', 'F']))
851
880
 
852
881
    def test_get_lines(self):
853
882
        self.setup_abcde()