Rev 6077: (jelmer) Add stub for ControlDir.find_branch_format, in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Wed Aug 17 13:34:00 UTC 2011


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

------------------------------------------------------------
revno: 6077 [merge]
revision-id: pqm at pqm.ubuntu.com-20110817133344-q713f20h882e4ag4
parent: pqm at pqm.ubuntu.com-20110817084016-600z65qzqmmt44w7
parent: jelmer at samba.org-20110816202923-7porkjy0wsvmrj5c
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Wed 2011-08-17 13:33:44 +0000
message:
  (jelmer) Add stub for ControlDir.find_branch_format,
   fix some tests against foreign formats. (Jelmer Vernooij)
added:
  bzrlib/tests/per_repository_vf/test_refresh_data.py test_refresh_data.py-20110815160959-0u2gs62hbvzqlpqb-1
modified:
  bzrlib/controldir.py           controldir.py-20100802102926-hvtvh0uae5epuibp-1
  bzrlib/tests/per_repository/test_refresh_data.py test_refresh_data.py-20090316045630-5sw0ipqwk7rvpn3h-1
  bzrlib/tests/per_repository_vf/__init__.py __init__.py-20110224144010-ukgfmlxcgsibq4u4-2
=== modified file 'bzrlib/controldir.py'
--- a/bzrlib/controldir.py	2011-05-19 09:32:38 +0000
+++ b/bzrlib/controldir.py	2011-08-15 16:06:58 +0000
@@ -193,6 +193,13 @@
         """
         raise NotImplementedError(self.destroy_workingtree_metadata)
 
+    def find_branch_format(self, name=None):
+        """Find the branch 'format' for this bzrdir.
+
+        This might be a synthetic object for e.g. RemoteBranch and SVN.
+        """
+        raise NotImplementedError(self.find_branch_format)
+
     def get_branch_reference(self, name=None):
         """Return the referenced URL for the branch in this controldir.
 

=== modified file 'bzrlib/tests/per_repository/test_refresh_data.py'
--- a/bzrlib/tests/per_repository/test_refresh_data.py	2010-05-11 14:14:55 +0000
+++ b/bzrlib/tests/per_repository/test_refresh_data.py	2011-08-16 20:29:23 +0000
@@ -17,10 +17,8 @@
 """Tests for Repository.refresh_data."""
 
 from bzrlib import (
-    errors,
     repository,
     )
-from bzrlib.tests import TestSkipped
 from bzrlib.tests.per_repository import TestCaseWithRepository
 
 
@@ -61,60 +59,3 @@
         else:
             # This is ok too.
             pass
-
-    def fetch_new_revision_into_concurrent_instance(self, repo, token):
-        """Create a new revision (revid 'new-rev') and fetch it into a
-        concurrent instance of repo.
-        """
-        source = self.make_branch_and_memory_tree('source')
-        source.lock_write()
-        self.addCleanup(source.unlock)
-        source.add([''], ['root-id'])
-        revid = source.commit('foo', rev_id='new-rev')
-        # Force data reading on weaves/knits
-        repo.all_revision_ids()
-        repo.revisions.keys()
-        repo.inventories.keys()
-        # server repo is the instance a smart server might hold for this
-        # repository.
-        server_repo = repo.bzrdir.open_repository()
-        try:
-            server_repo.lock_write(token)
-        except errors.TokenLockingNotSupported:
-            raise TestSkipped('Cannot concurrently insert into repo format %r'
-                % self.repository_format)
-        try:
-            server_repo.fetch(source.branch.repository, revid)
-        finally:
-            server_repo.unlock()
-
-    def test_refresh_data_after_fetch_new_data_visible(self):
-        repo = self.make_repository('target')
-        token = repo.lock_write().repository_token
-        self.addCleanup(repo.unlock)
-        self.fetch_new_revision_into_concurrent_instance(repo, token)
-        repo.refresh_data()
-        self.assertNotEqual({}, repo.get_graph().get_parent_map(['new-rev']))
-
-    def test_refresh_data_after_fetch_new_data_visible_in_write_group(self):
-        tree = self.make_branch_and_memory_tree('target')
-        tree.lock_write()
-        self.addCleanup(tree.unlock)
-        tree.add([''], ['root-id'])
-        tree.commit('foo', rev_id='commit-in-target')
-        repo = tree.branch.repository
-        token = repo.lock_write().repository_token
-        self.addCleanup(repo.unlock)
-        repo.start_write_group()
-        self.addCleanup(repo.abort_write_group)
-        self.fetch_new_revision_into_concurrent_instance(repo, token)
-        # Call refresh_data.  It either fails with IsInWriteGroupError, or it
-        # succeeds and the new revisions are visible.
-        try:
-            repo.refresh_data()
-        except repository.IsInWriteGroupError:
-            pass
-        else:
-            self.assertEqual(
-                ['commit-in-target', 'new-rev'],
-                sorted(repo.all_revision_ids()))

=== modified file 'bzrlib/tests/per_repository_vf/__init__.py'
--- a/bzrlib/tests/per_repository_vf/__init__.py	2011-05-13 10:07:00 +0000
+++ b/bzrlib/tests/per_repository_vf/__init__.py	2011-08-15 16:13:40 +0000
@@ -44,6 +44,7 @@
         'test__generate_text_key_index',
         'test_fetch',
         'test_reconcile',
+        'test_refresh_data',
         'test_repository',
         'test_write_group',
         ]

=== added file 'bzrlib/tests/per_repository_vf/test_refresh_data.py'
--- a/bzrlib/tests/per_repository_vf/test_refresh_data.py	1970-01-01 00:00:00 +0000
+++ b/bzrlib/tests/per_repository_vf/test_refresh_data.py	2011-08-16 20:29:23 +0000
@@ -0,0 +1,91 @@
+# Copyright (C) 2011 Canonical Ltd
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+"""Tests for VersionedFileRepository.refresh_data."""
+
+from bzrlib import repository
+
+from bzrlib.tests.per_repository_vf import (
+    TestCaseWithRepository,
+    all_repository_vf_format_scenarios,
+    )
+from bzrlib.tests.scenarios import load_tests_apply_scenarios
+
+load_tests = load_tests_apply_scenarios
+
+
+class TestRefreshData(TestCaseWithRepository):
+
+    scenarios = all_repository_vf_format_scenarios()
+
+    def fetch_new_revision_into_concurrent_instance(self, repo, token):
+        """Create a new revision (revid 'new-rev') and fetch it into a
+        concurrent instance of repo.
+        """
+        source = self.make_branch_and_memory_tree('source')
+        source.lock_write()
+        self.addCleanup(source.unlock)
+        source.add([''], ['root-id'])
+        revid = source.commit('foo', rev_id='new-rev')
+        # Force data reading on weaves/knits
+        repo.all_revision_ids()
+        repo.revisions.keys()
+        repo.inventories.keys()
+        # server repo is the instance a smart server might hold for this
+        # repository.
+        server_repo = repo.bzrdir.open_repository()
+        try:
+            server_repo.lock_write(token)
+        except errors.TokenLockingNotSupported:
+            raise TestSkipped('Cannot concurrently insert into repo format %r'
+                % self.repository_format)
+        try:
+            server_repo.fetch(source.branch.repository, revid)
+        finally:
+            server_repo.unlock()
+
+    def test_refresh_data_after_fetch_new_data_visible_in_write_group(self):
+        tree = self.make_branch_and_memory_tree('target')
+        tree.lock_write()
+        self.addCleanup(tree.unlock)
+        tree.add([''], ['root-id'])
+        tree.commit('foo', rev_id='commit-in-target')
+        repo = tree.branch.repository
+        token = repo.lock_write().repository_token
+        self.addCleanup(repo.unlock)
+        repo.start_write_group()
+        self.addCleanup(repo.abort_write_group)
+        self.fetch_new_revision_into_concurrent_instance(repo, token)
+        # Call refresh_data.  It either fails with IsInWriteGroupError, or it
+        # succeeds and the new revisions are visible.
+        try:
+            repo.refresh_data()
+        except repository.IsInWriteGroupError:
+            pass
+        else:
+            self.assertEqual(
+                ['commit-in-target', 'new-rev'],
+                sorted(repo.all_revision_ids()))
+
+    def test_refresh_data_after_fetch_new_data_visible(self):
+        repo = self.make_repository('target')
+        token = repo.lock_write().repository_token
+        self.addCleanup(repo.unlock)
+        self.fetch_new_revision_into_concurrent_instance(repo, token)
+        repo.refresh_data()
+        self.assertNotEqual({}, repo.get_graph().get_parent_map(['new-rev']))
+
+




More information about the bazaar-commits mailing list