~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/per_pack_repository.py

  • Committer: Martin Pool
  • Date: 2010-04-01 04:41:18 UTC
  • mto: This revision was merged to the branch mainline in revision 5128.
  • Revision ID: mbp@sourcefrog.net-20100401044118-shyctqc02ob08ngz
ignore .testrepository

Show diffs side-by-side

added added

removed removed

Lines of Context:
288
288
        repo._pack_collection._clear_obsolete_packs()
289
289
        self.assertTrue(repo_transport.has('obsolete_packs/.nfsblahblah'))
290
290
 
291
 
    def test_pack_collection_sets_sibling_indices(self):
292
 
        """The CombinedGraphIndex objects in the pack collection are all
293
 
        siblings of each other, so that search-order reorderings will be copied
294
 
        to each other.
295
 
        """
296
 
        repo = self.make_repository('repo')
297
 
        pack_coll = repo._pack_collection
298
 
        indices = set([pack_coll.revision_index, pack_coll.inventory_index,
299
 
                pack_coll.text_index, pack_coll.signature_index])
300
 
        if pack_coll.chk_index is not None:
301
 
            indices.add(pack_coll.chk_index)
302
 
        combined_indices = set(idx.combined_index for idx in indices)
303
 
        for combined_index in combined_indices:
304
 
            self.assertEqual(
305
 
                combined_indices.difference([combined_index]),
306
 
                combined_index._sibling_indices)
307
 
 
308
291
    def test_pack_after_two_commits_packs_everything(self):
309
292
        format = self.get_format()
310
293
        tree = self.make_branch_and_tree('.', format=format)
720
703
        self.assertEqual(self.format_supports_external_lookups,
721
704
            repo._format.supports_external_lookups)
722
705
 
723
 
    def _lock_write(self, write_lockable):
724
 
        """Lock write_lockable, add a cleanup and return the result.
725
 
        
726
 
        :param write_lockable: An object with a lock_write method.
727
 
        :return: The result of write_lockable.lock_write().
728
 
        """
729
 
        result = write_lockable.lock_write()
730
 
        self.addCleanup(result.unlock)
731
 
        return result
732
 
 
733
706
    def test_abort_write_group_does_not_raise_when_suppressed(self):
734
707
        """Similar to per_repository.test_write_group's test of the same name.
735
708
 
737
710
        """
738
711
        self.vfs_transport_factory = memory.MemoryServer
739
712
        repo = self.make_repository('repo', format=self.get_format())
740
 
        token = self._lock_write(repo).repository_token
 
713
        token = repo.lock_write()
 
714
        self.addCleanup(repo.unlock)
741
715
        repo.start_write_group()
742
716
        # Damage the repository on the filesystem
743
717
        self.get_transport('').rename('repo', 'foo')
753
727
    def test_abort_write_group_does_raise_when_not_suppressed(self):
754
728
        self.vfs_transport_factory = memory.MemoryServer
755
729
        repo = self.make_repository('repo', format=self.get_format())
756
 
        token = self._lock_write(repo).repository_token
 
730
        token = repo.lock_write()
 
731
        self.addCleanup(repo.unlock)
757
732
        repo.start_write_group()
758
733
        # Damage the repository on the filesystem
759
734
        self.get_transport('').rename('repo', 'foo')
765
740
    def test_suspend_write_group(self):
766
741
        self.vfs_transport_factory = memory.MemoryServer
767
742
        repo = self.make_repository('repo', format=self.get_format())
768
 
        token = self._lock_write(repo).repository_token
 
743
        token = repo.lock_write()
 
744
        self.addCleanup(repo.unlock)
769
745
        repo.start_write_group()
770
746
        repo.texts.add_lines(('file-id', 'revid'), (), ['lines'])
771
747
        wg_tokens = repo.suspend_write_group()
786
762
        repo = self.make_repository('repo', format=self.get_format())
787
763
        if repo.chk_bytes is None:
788
764
            raise TestNotApplicable('no chk_bytes for this repository')
789
 
        token = self._lock_write(repo).repository_token
 
765
        token = repo.lock_write()
 
766
        self.addCleanup(repo.unlock)
790
767
        repo.start_write_group()
791
768
        text = 'a bit of text\n'
792
769
        key = ('sha1:' + osutils.sha_string(text),)
807
784
        # Create a repo, start a write group, insert some data, suspend.
808
785
        self.vfs_transport_factory = memory.MemoryServer
809
786
        repo = self.make_repository('repo', format=self.get_format())
810
 
        token = self._lock_write(repo).repository_token
 
787
        token = repo.lock_write()
 
788
        self.addCleanup(repo.unlock)
811
789
        repo.start_write_group()
812
790
        text_key = ('file-id', 'revid')
813
791
        repo.texts.add_lines(text_key, (), ['lines'])
827
805
    def test_commit_resumed_write_group(self):
828
806
        self.vfs_transport_factory = memory.MemoryServer
829
807
        repo = self.make_repository('repo', format=self.get_format())
830
 
        token = self._lock_write(repo).repository_token
 
808
        token = repo.lock_write()
 
809
        self.addCleanup(repo.unlock)
831
810
        repo.start_write_group()
832
811
        text_key = ('file-id', 'revid')
833
812
        repo.texts.add_lines(text_key, (), ['lines'])
855
834
        self.vfs_transport_factory = memory.MemoryServer
856
835
        # Make a repository with a suspended write group
857
836
        repo = self.make_repository('repo', format=self.get_format())
858
 
        token = self._lock_write(repo).repository_token
 
837
        token = repo.lock_write()
 
838
        self.addCleanup(repo.unlock)
859
839
        repo.start_write_group()
860
840
        text_key = ('file-id', 'revid')
861
841
        repo.texts.add_lines(text_key, (), ['lines'])
862
842
        wg_tokens = repo.suspend_write_group()
863
843
        # Make a new repository
864
844
        new_repo = self.make_repository('new_repo', format=self.get_format())
865
 
        token = self._lock_write(new_repo).repository_token
 
845
        token = new_repo.lock_write()
 
846
        self.addCleanup(new_repo.unlock)
866
847
        hacked_wg_token = (
867
848
            '../../../../repo/.bzr/repository/upload/' + wg_tokens[0])
868
849
        self.assertRaises(