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