~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/per_controldir/test_controldir.py

(jelmer) Misc fixes for running the regular bzr tests against foreign
 branches. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
462
462
        except errors.IncompatibleFormat:
463
463
            return
464
464
        target = dir.sprout(self.get_url('target/child'))
465
 
        self.assertNotEqual(dir.transport.base, target.transport.base)
 
465
        self.assertNotEqual(dir.user_transport.base, target.user_transport.base)
466
466
        self.assertTrue(shared_repo.has_revision('1'))
467
467
 
468
468
    def test_sprout_bzrdir_repository_branch_both_under_shared(self):
591
591
        except errors.IncompatibleFormat:
592
592
            return
593
593
        target = dir.sprout(self.get_url('target/child'), force_new_repo=True)
594
 
        self.assertNotEqual(dir.transport.base, target.transport.base)
 
594
        self.assertNotEqual(dir.control_transport.base, target.control_transport.base)
595
595
        self.assertFalse(shared_repo.has_revision('1'))
596
596
 
597
597
    def test_sprout_bzrdir_branch_reference(self):
707
707
        source = builder.get_branch()
708
708
        try:
709
709
            source.tags.set_tag('tag-a', 'missing-rev')
710
 
        except errors.TagsNotSupported:
711
 
            raise TestNotApplicable('Branch format does not support tags.')
 
710
        except (errors.TagsNotSupported, errors.GhostTagsNotSupported):
 
711
            raise TestNotApplicable('Branch format does not support tags '
 
712
                'or tags referencing ghost revisions.')
712
713
        # Now source has a tag pointing to an absent revision.  Sprout its
713
714
        # controldir.
714
715
        dir = source.bzrdir
725
726
        source = builder.get_branch()
726
727
        try:
727
728
            source.tags.set_tag('tag-a', 'missing-rev')
728
 
        except errors.TagsNotSupported:
729
 
            raise TestNotApplicable('Branch format does not support tags.')
 
729
        except (errors.TagsNotSupported, errors.GhostTagsNotSupported):
 
730
            raise TestNotApplicable('Branch format does not support tags '
 
731
                'or tags referencing missing revisions.')
730
732
        # Now source has a tag pointing to an absent revision.  Sprout its
731
733
        # controldir.
732
734
        dir = source.bzrdir
759
761
        try:
760
762
            # Create a tag for B2, and for an absent rev
761
763
            source.tags.set_tag('tag-non-ancestry', 'rev-b2')
 
764
        except errors.TagsNotSupported:
 
765
            raise TestNotApplicable('Branch format does not support tags ')
 
766
        try:
762
767
            source.tags.set_tag('tag-absent', 'absent-rev')
763
 
        except errors.TagsNotSupported:
764
 
            raise TestNotApplicable('Branch format does not support tags.')
 
768
        except errors.GhostTagsNotSupported:
 
769
            has_ghost_tag = False
 
770
        else:
 
771
            has_ghost_tag = True
765
772
        source.get_config().set_user_option('branch.fetch_tags', 'True')
766
773
        # And ask sprout for C2
767
774
        dir = source.bzrdir
768
775
        target = dir.sprout(self.get_url('target'), revision_id='rev-c2')
769
776
        # The tags are present
770
777
        new_branch = target.open_branch()
771
 
        self.assertEqual(
772
 
            {'tag-absent': 'absent-rev', 'tag-non-ancestry': 'rev-b2'},
773
 
            new_branch.tags.get_tag_dict())
 
778
        if has_ghost_tag:
 
779
            self.assertEqual(
 
780
                {'tag-absent': 'absent-rev', 'tag-non-ancestry': 'rev-b2'},
 
781
                new_branch.tags.get_tag_dict())
 
782
        else:
 
783
            self.assertEqual(
 
784
                {'tag-non-ancestry': 'rev-b2'},
 
785
                new_branch.tags.get_tag_dict())
774
786
        # And the revs for A2, B2 and C2's ancestries are present, but no
775
787
        # others.
776
788
        self.assertEqual(
1212
1224
            return
1213
1225
        t = self.get_transport()
1214
1226
        made_control = self.bzrdir_format.initialize(t.base)
1215
 
        made_repo = made_control.create_repository(shared=False)
 
1227
        try:
 
1228
            made_repo = made_control.create_repository(shared=False)
 
1229
        except errors.IncompatibleFormat:
 
1230
            # Some control dir formats don't support non-shared repositories
 
1231
            # and should raise IncompatibleFormat
 
1232
            return
1216
1233
        self.assertFalse(made_repo.is_shared())
1217
1234
 
1218
1235
    def test_open_repository(self):