Rev 3229: Review fileid_involved tests for use with a read-instance repository. in http://people.ubuntu.com/~robertc/baz2.0/shallow-branch

Robert Collins robertc at robertcollins.net
Tue Feb 19 00:31:43 GMT 2008


At http://people.ubuntu.com/~robertc/baz2.0/shallow-branch

------------------------------------------------------------
revno: 3229
revision-id:robertc at robertcollins.net-20080219003138-g71escms9l7dhd7c
parent: robertc at robertcollins.net-20080218042350-hwvgpp0hcbxm682h
committer: Robert Collins <robertc at robertcollins.net>
branch nick: repository_implementations.split_read_write
timestamp: Tue 2008-02-19 11:31:38 +1100
message:
  Review fileid_involved tests for use with a read-instance repository.
modified:
  bzrlib/tests/repository_implementations/test_fileid_involved.py test_file_involved.py-20051215205901-728a172d1014daaa
=== modified file 'bzrlib/tests/repository_implementations/test_fileid_involved.py'
--- a/bzrlib/tests/repository_implementations/test_fileid_involved.py	2007-10-26 19:18:48 +0000
+++ b/bzrlib/tests/repository_implementations/test_fileid_involved.py	2008-02-19 00:31:38 +0000
@@ -31,16 +31,21 @@
         tree.bzrdir.root_transport.append_bytes(filename, "appended line\n")
 
     def compare_tree_fileids(self, branch, old_rev, new_rev):
-        old_tree = self.branch.repository.revision_tree(old_rev)
-        new_tree = self.branch.repository.revision_tree(new_rev)
-        delta = new_tree.changes_from(old_tree)
+        repo = self._make_test_read_instance(self.branch.repository)
+        repo.lock_read()
+        try:
+            old_tree = repo.revision_tree(old_rev)
+            new_tree = repo.revision_tree(new_rev)
+            delta = new_tree.changes_from(old_tree)
 
-        l2 = [id for path, id, kind in delta.added] + \
-             [id for oldpath, newpath, id, kind, text_modified, \
-                meta_modified in delta.renamed] + \
-             [id for path, id, kind, text_modified, meta_modified in \
-                delta.modified]
-        return set(l2)
+            l2 = [id for path, id, kind in delta.added] + \
+                 [id for oldpath, newpath, id, kind, text_modified, \
+                    meta_modified in delta.renamed] + \
+                 [id for path, id, kind, text_modified, meta_modified in \
+                    delta.modified]
+            return set(l2)
+        finally:
+            repo.unlock()
 
     
 class TestFileIdInvolved(FileIdInvolvedBase):
@@ -145,13 +150,13 @@
             {'b-file-id-2006-01-01-defg':set(['rev-J']),
              'c-funky<file-id>quiji%bo':set(['rev-K'])
              },
-            self.branch.repository.fileids_altered_by_revision_ids(["rev-J","rev-K"]))
+            self.fileids_altered_by_revision_ids(["rev-J","rev-K"]))
 
         self.assertEqual(
             {'b-file-id-2006-01-01-defg': set(['rev-<D>']),
              'file-d': set(['rev-F']),
              },
-            self.branch.repository.fileids_altered_by_revision_ids(['rev-<D>', 'rev-F']))
+            self.fileids_altered_by_revision_ids(['rev-<D>', 'rev-F']))
 
         self.assertEqual(
             {
@@ -159,7 +164,7 @@
              'c-funky<file-id>quiji%bo': set(['rev-K']),
              'file-d': set(['rev-F']), 
              },
-            self.branch.repository.fileids_altered_by_revision_ids(
+            self.fileids_altered_by_revision_ids(
                 ['rev-<D>', 'rev-G', 'rev-F', 'rev-K', 'rev-J']))
 
         self.assertEqual(
@@ -168,17 +173,21 @@
              'c-funky<file-id>quiji%bo': set(['rev-K']),
              'file-d': set(['rev-F']),
              },
-            self.branch.repository.fileids_altered_by_revision_ids(
+            self.fileids_altered_by_revision_ids(
                 ['rev-G', 'rev-F', 'rev-C', 'rev-B', 'rev-<D>', 'rev-K', 'rev-J']))
 
     def fileids_altered_by_revision_ids(self, revision_ids):
         """This is a wrapper to strip TREE_ROOT if it occurs"""
-        repo = self.branch.repository
-        root_id = self.branch.basis_tree().get_root_id()
-        result = repo.fileids_altered_by_revision_ids(revision_ids)
-        if root_id in result:
-            del result[root_id]
-        return result
+        repo = self._make_test_read_instance(self.branch.repository)
+        repo.lock_read()
+        try:
+            root_id = self.branch.basis_tree().get_root_id()
+            result = repo.fileids_altered_by_revision_ids(revision_ids)
+            if root_id in result:
+                del result[root_id]
+            return result
+        finally:
+            repo.unlock()
 
     def test_fileids_altered_by_revision_ids(self):
         self.branch.lock_read()
@@ -241,7 +250,7 @@
             raise TestSkipped('non-ascii revision ids not supported by %s'
                               % self.repository_format)
 
-        repo = main_wt.branch.repository
+        repo = self._make_test_read_instance(main_wt.branch.repository)
         repo.lock_read()
         self.addCleanup(repo.unlock)
         file_ids = repo.fileids_altered_by_revision_ids([revision_id])
@@ -300,13 +309,15 @@
         self.branch.lock_read()
         self.addCleanup(self.branch.unlock)
         history = self.branch.revision_history()
+        repo = self._make_test_read_instance(self.branch.repository)
+        repo.lock_read()
+        self.addCleanup(repo.unlock)
         old_rev = history[0]
         new_rev = history[1]
-        old_revs = set(self.branch.repository.get_ancestry(old_rev))
-        new_revs = set(self.branch.repository.get_ancestry(new_rev))
+        old_revs = set(repo.get_ancestry(old_rev))
+        new_revs = set(repo.get_ancestry(new_rev))
 
-        l1 = self.branch.repository.fileids_altered_by_revision_ids(
-            new_revs.difference(old_revs))
+        l1 = repo.fileids_altered_by_revision_ids(new_revs.difference(old_revs))
         l1 = set(l1.keys())
 
         l2 = self.compare_tree_fileids(self.branch, old_rev, new_rev)



More information about the bazaar-commits mailing list