/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/per_bzrdir/test_bzrdir.py

  • Committer: John Arbash Meinel
  • Date: 2009-12-10 17:16:19 UTC
  • mfrom: (4884 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4889.
  • Revision ID: john@arbash-meinel.com-20091210171619-ehdcxjbl8afhq9g1
Bring in bzr.dev 4884

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
    bzrdir,
29
29
    check,
30
30
    errors,
 
31
    gpg,
31
32
    lockdir,
32
33
    osutils,
33
34
    repository,
432
433
        target = dir.clone(self.get_url('target'), revision_id='2')
433
434
        raise TestSkipped('revision limiting not strict yet')
434
435
 
 
436
    def test_clone_bzrdir_branch_and_repo_fixed_user_id(self):
 
437
        # Bug #430868 is about an email containing '.sig'
 
438
        os.environ['BZR_EMAIL'] = 'murphy@host.sighup.org'
 
439
        tree = self.make_branch_and_tree('commit_tree')
 
440
        self.build_tree(['commit_tree/foo'])
 
441
        tree.add('foo')
 
442
        rev1 = tree.commit('revision 1')
 
443
        tree_repo = tree.branch.repository
 
444
        tree_repo.lock_write()
 
445
        tree_repo.start_write_group()
 
446
        tree_repo.sign_revision(rev1, gpg.LoopbackGPGStrategy(None))
 
447
        tree_repo.commit_write_group()
 
448
        tree_repo.unlock()
 
449
        target = self.make_branch('target')
 
450
        tree.branch.repository.copy_content_into(target.repository)
 
451
        tree.branch.copy_content_into(target)
 
452
        self.assertTrue(target.repository.has_revision(rev1))
 
453
        self.assertEqual(
 
454
            tree_repo.get_signature_text(rev1),
 
455
            target.repository.get_signature_text(rev1))
 
456
 
435
457
    def test_clone_bzrdir_branch_and_repo(self):
436
458
        tree = self.make_branch_and_tree('commit_tree')
437
459
        self.build_tree(['commit_tree/foo'])
756
778
                                     './.bzr/repository/inventory.knit',
757
779
                                     ])
758
780
        try:
 
781
            local_inventory = dir.transport.local_abspath('inventory')
 
782
        except errors.NotLocalUrl:
 
783
            return
 
784
        try:
759
785
            # If we happen to have a tree, we'll guarantee everything
760
786
            # except for the tree root is the same.
761
 
            inventory_f = file(dir.transport.base+'inventory', 'rb')
 
787
            inventory_f = file(local_inventory, 'rb')
 
788
            self.addCleanup(inventory_f.close)
762
789
            self.assertContainsRe(inventory_f.read(),
763
 
                                  '<inventory file_id="TREE_ROOT[^"]*"'
764
 
                                  ' format="5">\n</inventory>\n')
765
 
            inventory_f.close()
 
790
                                  '<inventory format="5">\n</inventory>\n')
766
791
        except IOError, e:
767
792
            if e.errno != errno.ENOENT:
768
793
                raise
1210
1235
            return
1211
1236
        self.assertNotEqual(repo.bzrdir.root_transport.base,
1212
1237
            made_repo.bzrdir.root_transport.base)
1213
 
        # New repositories are write locked.
1214
 
        self.assertTrue(made_repo.is_write_locked())
1215
 
        made_repo.unlock()
1216
1238
 
1217
1239
    def test_format_initialize_on_transport_ex_force_new_repo_False(self):
1218
1240
        t = self.get_transport('repo')
1245
1267
            # uninitialisable format
1246
1268
            return
1247
1269
        self.assertLength(1, repo._fallback_repositories)
1248
 
        # New repositories are write locked.
1249
 
        self.assertTrue(repo.is_write_locked())
1250
 
        repo.unlock()
1251
1270
 
1252
1271
    def test_format_initialize_on_transport_ex_default_stack_on(self):
1253
1272
        # When initialize_on_transport_ex uses a stacked-on branch because of
1270
1289
        repo_name = repo_fmt.repository_format.network_name()
1271
1290
        repo, control = self.assertInitializeEx(
1272
1291
            t, need_meta=True, repo_format_name=repo_name, stacked_on=None)
 
1292
        # self.addCleanup(repo.unlock)
1273
1293
        if control is None:
1274
1294
            # uninitialisable format
1275
1295
            return
1301
1321
            # must stay with the all-in-one-format.
1302
1322
            repo_name = self.bzrdir_format.network_name()
1303
1323
        self.assertEqual(repo_name, repo._format.network_name())
1304
 
        # New repositories are write locked.
1305
 
        self.assertTrue(repo.is_write_locked())
1306
 
        repo.unlock()
1307
1324
 
1308
1325
    def assertInitializeEx(self, t, need_meta=False, **kwargs):
1309
1326
        """Execute initialize_on_transport_ex and check it succeeded correctly.
1321
1338
            return None, None
1322
1339
        repo, control, require_stacking, repo_policy = \
1323
1340
            self.bzrdir_format.initialize_on_transport_ex(t, **kwargs)
 
1341
        if repo is not None:
 
1342
            # Repositories are open write-locked
 
1343
            self.assertTrue(repo.is_write_locked())
 
1344
            self.addCleanup(repo.unlock)
1324
1345
        self.assertIsInstance(control, bzrdir.BzrDir)
1325
1346
        opened = bzrdir.BzrDir.open(t.base)
1326
1347
        expected_format = self.bzrdir_format