Rev 5721: (jelmer) Skip more tests for repositories that don't implement the full in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Mon Mar 14 12:08:57 UTC 2011


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 5721 [merge]
revision-id: pqm at pqm.ubuntu.com-20110314120853-ot5tnefih540reoa
parent: pqm at pqm.ubuntu.com-20110314113235-vkdg2umzio48zlnu
parent: jelmer at samba.org-20110314000925-wozcyxwkcy55x5e8
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2011-03-14 12:08:53 +0000
message:
  (jelmer) Skip more tests for repositories that don't implement the full
   versionedfiles API. (Jelmer Vernooij)
modified:
  bzrlib/tests/per_repository/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
  bzrlib/tests/per_repository_vf/test_repository.py test_repository.py-20110224144010-ukgfmlxcgsibq4u4-3
  bzrlib/tests/test_inv.py       testinv.py-20050722220913-1dc326138d1a5892
=== modified file 'bzrlib/tests/per_repository/test_repository.py'
--- a/bzrlib/tests/per_repository/test_repository.py	2011-03-11 15:36:12 +0000
+++ b/bzrlib/tests/per_repository/test_repository.py	2011-03-14 00:09:25 +0000
@@ -170,26 +170,6 @@
         self.assertIsInstance(repo.texts,
             versionedfile.VersionedFiles)
 
-    def test_exposed_versioned_files_are_marked_dirty(self):
-        repo = self.make_repository('.')
-        repo.lock_write()
-        signatures = repo.signatures
-        revisions = repo.revisions
-        inventories = repo.inventories
-        repo.unlock()
-        self.assertRaises(errors.ObjectNotLocked,
-            signatures.keys)
-        self.assertRaises(errors.ObjectNotLocked,
-            revisions.keys)
-        self.assertRaises(errors.ObjectNotLocked,
-            inventories.keys)
-        self.assertRaises(errors.ObjectNotLocked,
-            signatures.add_lines, ('foo',), [], [])
-        self.assertRaises(errors.ObjectNotLocked,
-            revisions.add_lines, ('foo',), [], [])
-        self.assertRaises(errors.ObjectNotLocked,
-            inventories.add_lines, ('foo',), [], [])
-
     def test_clone_to_default_format(self):
         #TODO: Test that cloning a repository preserves all the information
         # such as signatures[not tested yet] etc etc.
@@ -1083,97 +1063,6 @@
         self.assertThat(repo.lock_write, ReturnsUnlockable(repo))
 
 
-class TestCaseWithComplexRepository(per_repository.TestCaseWithRepository):
-
-    def setUp(self):
-        super(TestCaseWithComplexRepository, self).setUp()
-        tree_a = self.make_branch_and_tree('a')
-        self.bzrdir = tree_a.branch.bzrdir
-        # add a corrupt inventory 'orphan'
-        # this may need some generalising for knits.
-        tree_a.lock_write()
-        try:
-            tree_a.branch.repository.start_write_group()
-            try:
-                inv_file = tree_a.branch.repository.inventories
-                inv_file.add_lines(('orphan',), [], [])
-            except:
-                tree_a.branch.repository.commit_write_group()
-                raise
-            else:
-                tree_a.branch.repository.abort_write_group()
-        finally:
-            tree_a.unlock()
-        # add a real revision 'rev1'
-        tree_a.commit('rev1', rev_id='rev1', allow_pointless=True)
-        # add a real revision 'rev2' based on rev1
-        tree_a.commit('rev2', rev_id='rev2', allow_pointless=True)
-        # add a reference to a ghost
-        tree_a.add_parent_tree_id('ghost1')
-        try:
-            tree_a.commit('rev3', rev_id='rev3', allow_pointless=True)
-        except errors.RevisionNotPresent:
-            raise tests.TestNotApplicable(
-                "Cannot test with ghosts for this format.")
-        # add another reference to a ghost, and a second ghost.
-        tree_a.add_parent_tree_id('ghost1')
-        tree_a.add_parent_tree_id('ghost2')
-        tree_a.commit('rev4', rev_id='rev4', allow_pointless=True)
-
-    def test_revision_trees(self):
-        revision_ids = ['rev1', 'rev2', 'rev3', 'rev4']
-        repository = self.bzrdir.open_repository()
-        repository.lock_read()
-        self.addCleanup(repository.unlock)
-        trees1 = list(repository.revision_trees(revision_ids))
-        trees2 = [repository.revision_tree(t) for t in revision_ids]
-        self.assertEqual(len(trees1), len(trees2))
-        for tree1, tree2 in zip(trees1, trees2):
-            self.assertFalse(tree2.changes_from(tree1).has_changed())
-
-    def test_get_deltas_for_revisions(self):
-        repository = self.bzrdir.open_repository()
-        repository.lock_read()
-        self.addCleanup(repository.unlock)
-        revisions = [repository.get_revision(r) for r in
-                     ['rev1', 'rev2', 'rev3', 'rev4']]
-        deltas1 = list(repository.get_deltas_for_revisions(revisions))
-        deltas2 = [repository.get_revision_delta(r.revision_id) for r in
-                   revisions]
-        self.assertEqual(deltas1, deltas2)
-
-    def test_all_revision_ids(self):
-        # all_revision_ids -> all revisions
-        self.assertEqual(set(['rev1', 'rev2', 'rev3', 'rev4']),
-            set(self.bzrdir.open_repository().all_revision_ids()))
-
-    def test_get_ancestry_missing_revision(self):
-        # get_ancestry(revision that is in some data but not fully installed
-        # -> NoSuchRevision
-        self.assertRaises(errors.NoSuchRevision,
-                          self.bzrdir.open_repository().get_ancestry, 'orphan')
-
-    def test_get_unordered_ancestry(self):
-        repo = self.bzrdir.open_repository()
-        self.assertEqual(set(repo.get_ancestry('rev3')),
-                         set(repo.get_ancestry('rev3', topo_sorted=False)))
-
-    def test_reserved_id(self):
-        repo = self.make_repository('repository')
-        repo.lock_write()
-        repo.start_write_group()
-        try:
-            self.assertRaises(errors.ReservedId, repo.add_inventory, 'reserved:',
-                              None, None)
-            self.assertRaises(errors.ReservedId, repo.add_inventory_by_delta,
-                "foo", [], 'reserved:', None)
-            self.assertRaises(errors.ReservedId, repo.add_revision, 'reserved:',
-                              None)
-        finally:
-            repo.abort_write_group()
-            repo.unlock()
-
-
 class TestCaseWithCorruptRepository(per_repository.TestCaseWithRepository):
 
     def setUp(self):

=== modified file 'bzrlib/tests/per_repository_vf/test_repository.py'
--- a/bzrlib/tests/per_repository_vf/test_repository.py	2011-03-08 17:29:19 +0000
+++ b/bzrlib/tests/per_repository_vf/test_repository.py	2011-03-14 00:09:25 +0000
@@ -17,6 +17,8 @@
 """Tests for repository implementations - tests a repository format."""
 
 from bzrlib import (
+    errors,
+    tests,
     versionedfile,
     )
 
@@ -89,3 +91,116 @@
         repo = tree.branch.repository
         self.assertIsInstance(repo.signatures,
             versionedfile.VersionedFiles)
+
+    def test_exposed_versioned_files_are_marked_dirty(self):
+        repo = self.make_repository('.')
+        repo.lock_write()
+        signatures = repo.signatures
+        revisions = repo.revisions
+        inventories = repo.inventories
+        repo.unlock()
+        self.assertRaises(errors.ObjectNotLocked,
+            signatures.keys)
+        self.assertRaises(errors.ObjectNotLocked,
+            revisions.keys)
+        self.assertRaises(errors.ObjectNotLocked,
+            inventories.keys)
+        self.assertRaises(errors.ObjectNotLocked,
+            signatures.add_lines, ('foo',), [], [])
+        self.assertRaises(errors.ObjectNotLocked,
+            revisions.add_lines, ('foo',), [], [])
+        self.assertRaises(errors.ObjectNotLocked,
+            inventories.add_lines, ('foo',), [], [])
+
+
+class TestCaseWithComplexRepository(TestCaseWithRepository):
+
+    scenarios = all_repository_vf_format_scenarios()
+
+    def setUp(self):
+        super(TestCaseWithComplexRepository, self).setUp()
+        tree_a = self.make_branch_and_tree('a')
+        self.bzrdir = tree_a.branch.bzrdir
+        # add a corrupt inventory 'orphan'
+        # this may need some generalising for knits.
+        tree_a.lock_write()
+        try:
+            tree_a.branch.repository.start_write_group()
+            try:
+                inv_file = tree_a.branch.repository.inventories
+                inv_file.add_lines(('orphan',), [], [])
+            except:
+                tree_a.branch.repository.commit_write_group()
+                raise
+            else:
+                tree_a.branch.repository.abort_write_group()
+        finally:
+            tree_a.unlock()
+        # add a real revision 'rev1'
+        tree_a.commit('rev1', rev_id='rev1', allow_pointless=True)
+        # add a real revision 'rev2' based on rev1
+        tree_a.commit('rev2', rev_id='rev2', allow_pointless=True)
+        # add a reference to a ghost
+        tree_a.add_parent_tree_id('ghost1')
+        try:
+            tree_a.commit('rev3', rev_id='rev3', allow_pointless=True)
+        except errors.RevisionNotPresent:
+            raise tests.TestNotApplicable(
+                "Cannot test with ghosts for this format.")
+        # add another reference to a ghost, and a second ghost.
+        tree_a.add_parent_tree_id('ghost1')
+        tree_a.add_parent_tree_id('ghost2')
+        tree_a.commit('rev4', rev_id='rev4', allow_pointless=True)
+
+    def test_revision_trees(self):
+        revision_ids = ['rev1', 'rev2', 'rev3', 'rev4']
+        repository = self.bzrdir.open_repository()
+        repository.lock_read()
+        self.addCleanup(repository.unlock)
+        trees1 = list(repository.revision_trees(revision_ids))
+        trees2 = [repository.revision_tree(t) for t in revision_ids]
+        self.assertEqual(len(trees1), len(trees2))
+        for tree1, tree2 in zip(trees1, trees2):
+            self.assertFalse(tree2.changes_from(tree1).has_changed())
+
+    def test_get_deltas_for_revisions(self):
+        repository = self.bzrdir.open_repository()
+        repository.lock_read()
+        self.addCleanup(repository.unlock)
+        revisions = [repository.get_revision(r) for r in
+                     ['rev1', 'rev2', 'rev3', 'rev4']]
+        deltas1 = list(repository.get_deltas_for_revisions(revisions))
+        deltas2 = [repository.get_revision_delta(r.revision_id) for r in
+                   revisions]
+        self.assertEqual(deltas1, deltas2)
+
+    def test_all_revision_ids(self):
+        # all_revision_ids -> all revisions
+        self.assertEqual(set(['rev1', 'rev2', 'rev3', 'rev4']),
+            set(self.bzrdir.open_repository().all_revision_ids()))
+
+    def test_get_ancestry_missing_revision(self):
+        # get_ancestry(revision that is in some data but not fully installed
+        # -> NoSuchRevision
+        self.assertRaises(errors.NoSuchRevision,
+                          self.bzrdir.open_repository().get_ancestry, 'orphan')
+
+    def test_get_unordered_ancestry(self):
+        repo = self.bzrdir.open_repository()
+        self.assertEqual(set(repo.get_ancestry('rev3')),
+                         set(repo.get_ancestry('rev3', topo_sorted=False)))
+
+    def test_reserved_id(self):
+        repo = self.make_repository('repository')
+        repo.lock_write()
+        repo.start_write_group()
+        try:
+            self.assertRaises(errors.ReservedId, repo.add_inventory,
+                'reserved:', None, None)
+            self.assertRaises(errors.ReservedId, repo.add_inventory_by_delta,
+                "foo", [], 'reserved:', None)
+            self.assertRaises(errors.ReservedId, repo.add_revision,
+                'reserved:', None)
+        finally:
+            repo.abort_write_group()
+            repo.unlock()

=== modified file 'bzrlib/tests/test_inv.py'
--- a/bzrlib/tests/test_inv.py	2011-02-24 16:45:27 +0000
+++ b/bzrlib/tests/test_inv.py	2011-03-14 00:09:25 +0000
@@ -56,10 +56,14 @@
     # just creating trees.
     formats = set()
     for _, format in repository.format_registry.iteritems():
-        scenarios.append((str(format.__name__), {
-            'apply_delta':apply_inventory_Repository_add_inventory_by_delta,
-            'format':format}))
+        if format.supports_full_versioned_files:
+            scenarios.append((str(format.__name__), {
+                'apply_delta':apply_inventory_Repository_add_inventory_by_delta,
+                'format':format}))
     for format in workingtree.format_registry._get_all():
+        repo_fmt = format._matchingbzrdir.repository_format
+        if not repo_fmt.supports_full_versioned_files:
+            continue
         scenarios.append(
             (str(format.__class__.__name__) + ".update_basis_by_delta", {
             'apply_delta':apply_inventory_WT_basis,
@@ -79,7 +83,7 @@
             lines = []
         repo.texts.add_lines((ie.file_id, ie.revision), [], lines)
 
-    
+
 def apply_inventory_Inventory(self, basis, delta):
     """Apply delta to basis and return the result.
     




More information about the bazaar-commits mailing list