[MERGE] Improvements to test_bzrdir
Andrew Bennetts
andrew at canonical.com
Thu Aug 17 04:53:48 BST 2006
On Thu, Aug 17, 2006 at 01:47:55PM +1000, Andrew Bennetts wrote:
> This is a bunch of changes I've made to test_bzrdir.py in the process of working
> on the smart server with Martin and Robert. It does the following things:
Again, the patch isn't really empty :)
Here's the real one.
-Andrew.
-------------- next part --------------
=== modified file 'bzrlib/bzrdir.py'
--- bzrlib/bzrdir.py 2006-08-15 13:06:11 +0000
+++ bzrlib/bzrdir.py 2006-08-17 03:53:24 +0000
@@ -615,7 +615,8 @@
# XXX FIXME RBC 20060214 need tests for this when the basis
# is incomplete
result_repo.fetch(basis_repo, revision_id=revision_id)
- result_repo.fetch(source_repository, revision_id=revision_id)
+ if source_repository is not None:
+ result_repo.fetch(source_repository, revision_id=revision_id)
if source_branch is not None:
source_branch.sprout(result, revision_id=revision_id)
else:
=== modified file 'bzrlib/tests/bzrdir_implementations/test_bzrdir.py'
--- bzrlib/tests/bzrdir_implementations/test_bzrdir.py 2006-08-05 22:33:36 +0000
+++ bzrlib/tests/bzrdir_implementations/test_bzrdir.py 2006-08-17 03:53:24 +0000
@@ -332,6 +332,11 @@
tree.commit('revision 1')
dir = tree.bzrdir
target = dir.clone(self.get_url('target'))
+ try:
+ target.open_workingtree()
+ except (errors.NotLocalUrl, errors.NoWorkingTree):
+ raise TestSkipped("clone cannot make working tree with transport %r"
+ % target.transport)
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertDirectoriesEqual(dir.root_transport, target.root_transport,
['./.bzr/stat-cache',
@@ -348,6 +353,11 @@
tree.commit('revision 1')
dir = tree.bzrdir
target = dir.clone(self.get_url('target'))
+ try:
+ target.open_workingtree()
+ except (errors.NotLocalUrl, errors.NoWorkingTree):
+ raise TestSkipped("clone cannot make working tree with transport %r"
+ % target.transport)
self.assertDirectoriesEqual(dir.root_transport, target.root_transport,
['./.bzr/stat-cache',
'./.bzr/checkout/stat-cache',
@@ -373,8 +383,17 @@
except errors.IncompatibleFormat:
# this is ok too, not all formats have to support references.
return
- dir.create_workingtree()
+ try:
+ dir.create_workingtree()
+ except errors.NotLocalUrl:
+ raise TestSkipped("cannot make working tree with transport %r"
+ % dir.transport)
target = dir.clone(self.get_url('target'))
+ try:
+ target.open_workingtree()
+ except (errors.NotLocalUrl, errors.NoWorkingTree):
+ raise TestSkipped("clone cannot make working tree with transport %r"
+ % target.transport)
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertDirectoriesEqual(dir.root_transport, target.root_transport,
['./.bzr/stat-cache',
@@ -396,6 +415,11 @@
tree.commit('revision 2', rev_id='2', allow_pointless=True)
dir = tree.bzrdir
target = dir.clone(self.get_url('target'), revision_id='1')
+ try:
+ target.open_workingtree()
+ except (errors.NotLocalUrl, errors.NoWorkingTree):
+ raise TestSkipped("clone cannot make working tree with transport %r"
+ % target.transport)
self.assertEqual('1', target.open_workingtree().last_revision())
def test_clone_bzrdir_incomplete_source_with_basis(self):
@@ -414,12 +438,20 @@
dir = source.bzrdir
target = dir.clone(self.get_url('target'), basis=tree.bzrdir)
self.assertEqual('2', target.open_branch().last_revision())
- self.assertEqual('2', target.open_workingtree().last_revision())
+ try:
+ self.assertEqual('2', target.open_workingtree().last_revision())
+ except errors.NoWorkingTree:
+ # It should have a working tree if it's able to have one, so if
+ # we're here make sure it really can't have one.
+ self.assertRaises(errors.NotLocalUrl, target.create_workingtree)
self.assertTrue(target.open_branch().repository.has_revision('2'))
def test_sprout_bzrdir_empty(self):
dir = self.make_bzrdir('source')
- target = dir.sprout(self.get_url('target'))
+ try:
+ target = dir.sprout(self.get_url('target'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
# creates a new repository branch and tree
target.open_repository()
@@ -433,12 +465,15 @@
self.make_repository('target', shared=True)
except errors.IncompatibleFormat:
return
- target = dir.sprout(self.get_url('target/child'))
+ try:
+ target = dir.sprout(self.get_url('target/child'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertRaises(errors.NoRepositoryPresent, target.open_repository)
target.open_branch()
target.open_workingtree()
- def test_sprout_bzrdir_empty_under_shared_repo(self):
+ def test_sprout_bzrdir_empty_under_shared_repo_force_new(self):
# the force_new_repo parameter should force use of a new repo in an empty
# bzrdir's sprout logic
dir = self.make_bzrdir('source')
@@ -446,7 +481,11 @@
self.make_repository('target', shared=True)
except errors.IncompatibleFormat:
return
- target = dir.sprout(self.get_url('target/child'), force_new_repo=True)
+ try:
+ target = dir.sprout(self.get_url('target/child'),
+ force_new_repo=True)
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
target.open_repository()
target.open_branch()
target.open_workingtree()
@@ -460,7 +499,10 @@
repo = dir.create_repository()
repo.fetch(tree.branch.repository)
self.assertTrue(repo.has_revision('1'))
- target = dir.sprout(self.get_url('target'))
+ try:
+ target = dir.sprout(self.get_url('target'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertDirectoriesEqual(dir.root_transport, target.root_transport,
['./.bzr/repository/inventory.knit',
@@ -481,7 +523,10 @@
shared_repo = self.make_repository('target', shared=True)
except errors.IncompatibleFormat:
return
- target = dir.sprout(self.get_url('target/child'))
+ try:
+ target = dir.sprout(self.get_url('target/child'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertTrue(shared_repo.has_revision('1'))
@@ -500,7 +545,10 @@
tree.bzrdir.open_repository().copy_content_into(shared_repo)
dir = self.make_bzrdir('shared/source')
dir.create_branch()
- target = dir.sprout(self.get_url('shared/target'))
+ try:
+ target = dir.sprout(self.get_url('shared/target'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertNotEqual(dir.transport.base, shared_repo.bzrdir.transport.base)
self.assertTrue(shared_repo.has_revision('1'))
@@ -523,7 +571,10 @@
self.assertTrue(shared_repo.has_revision('1'))
dir = self.make_bzrdir('shared/source')
dir.create_branch()
- target = dir.sprout(self.get_url('target'))
+ try:
+ target = dir.sprout(self.get_url('target'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertNotEqual(dir.transport.base, shared_repo.bzrdir.transport.base)
branch = target.open_branch()
@@ -546,7 +597,11 @@
shared_repo = self.make_repository('target', shared=True)
except errors.IncompatibleFormat:
return
- target = dir.sprout(self.get_url('target/child'), force_new_repo=True)
+ try:
+ target = dir.sprout(self.get_url('target/child'),
+ force_new_repo=True)
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertFalse(shared_repo.has_revision('1'))
@@ -565,7 +620,10 @@
source = self.make_repository('source')
tree.bzrdir.open_repository().copy_content_into(source)
dir = source.bzrdir
- target = dir.sprout(self.get_url('target'), revision_id='2')
+ try:
+ target = dir.sprout(self.get_url('target'), revision_id='2')
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
raise TestSkipped('revision limiting not strict yet')
def test_sprout_bzrdir_branch_and_repo(self):
@@ -577,7 +635,10 @@
tree.bzrdir.open_repository().copy_content_into(source.repository)
tree.bzrdir.open_branch().copy_content_into(source)
dir = source.bzrdir
- target = dir.sprout(self.get_url('target'))
+ try:
+ target = dir.sprout(self.get_url('target'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertDirectoriesEqual(dir.root_transport, target.root_transport,
['./.bzr/stat-cache',
@@ -602,7 +663,10 @@
shared_repo = self.make_repository('target', shared=True)
except errors.IncompatibleFormat:
return
- target = dir.sprout(self.get_url('target/child'))
+ try:
+ target = dir.sprout(self.get_url('target/child'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertTrue(shared_repo.has_revision('1'))
def test_sprout_bzrdir_branch_and_repo_shared_force_new_repo(self):
@@ -620,7 +684,11 @@
shared_repo = self.make_repository('target', shared=True)
except errors.IncompatibleFormat:
return
- target = dir.sprout(self.get_url('target/child'), force_new_repo=True)
+ try:
+ target = dir.sprout(self.get_url('target/child'),
+ force_new_repo=True)
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertFalse(shared_repo.has_revision('1'))
@@ -635,7 +703,10 @@
# this is ok too, not all formats have to support references.
return
self.assertRaises(errors.NoRepositoryPresent, dir.open_repository)
- target = dir.sprout(self.get_url('target'))
+ try:
+ target = dir.sprout(self.get_url('target'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
# we want target to have a branch that is in-place.
self.assertEqual(target, target.open_branch().bzrdir)
@@ -659,7 +730,10 @@
shared_repo = self.make_repository('target', shared=True)
except errors.IncompatibleFormat:
return
- target = dir.sprout(self.get_url('target/child'))
+ try:
+ target = dir.sprout(self.get_url('target/child'))
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
# we want target to have a branch that is in-place.
self.assertEqual(target, target.open_branch().bzrdir)
@@ -685,7 +759,11 @@
shared_repo = self.make_repository('target', shared=True)
except errors.IncompatibleFormat:
return
- target = dir.sprout(self.get_url('target/child'), force_new_repo=True)
+ try:
+ target = dir.sprout(self.get_url('target/child'),
+ force_new_repo=True)
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertNotEqual(dir.transport.base, target.transport.base)
# we want target to have a branch that is in-place.
self.assertEqual(target, target.open_branch().bzrdir)
@@ -708,7 +786,12 @@
tree.bzrdir.open_repository().copy_content_into(source.repository)
tree.bzrdir.open_branch().copy_content_into(source)
dir = source.bzrdir
- target = dir.sprout(self.get_url('target'), revision_id='1')
+ try:
+ target_url = self.get_url('target')
+ target = dir.sprout(target_url, revision_id='1')
+ except errors.NotLocalUrl:
+ raise TestSkipped("sprout cannot make working tree at %r"
+ % target_url)
self.assertEqual('1', target.open_branch().last_revision())
def test_sprout_bzrdir_tree_branch_repo(self):
@@ -717,7 +800,12 @@
tree.add('foo')
tree.commit('revision 1')
dir = tree.bzrdir
- target = dir.sprout(self.get_url('target'))
+ try:
+ target_url = self.get_url('target')
+ target = dir.sprout(target_url)
+ except errors.NotLocalUrl:
+ raise TestSkipped("sprout cannot make working tree at %r"
+ % target_url)
self.assertNotEqual(dir.transport.base, target.transport.base)
self.assertDirectoriesEqual(dir.root_transport, target.root_transport,
['./.bzr/stat-cache',
@@ -739,10 +827,19 @@
# this is ok too, not all formats have to support references.
return
self.assertRaises(errors.NoRepositoryPresent, dir.open_repository)
- tree = dir.create_workingtree()
+ try:
+ tree = dir.create_workingtree()
+ except errors.NotLocalUrl:
+ raise TestSkipped("cannot make working tree with transport %r"
+ % dir.transport)
tree.bzrdir.root_transport.mkdir('subdir')
tree.add('subdir')
- target = dir.sprout(self.get_url('target'))
+ try:
+ target_url = self.get_url('target')
+ target = dir.sprout(target_url)
+ except (errors.NotLocalUrl, errors.NoWorkingTree):
+ raise TestSkipped("sprout cannot make working tree at %r"
+ % target_url)
self.assertNotEqual(dir.transport.base, target.transport.base)
# we want target to have a branch that is in-place.
self.assertEqual(target, target.open_branch().bzrdir)
@@ -765,12 +862,21 @@
# this is ok too, not all formats have to support references.
return
self.assertRaises(errors.NoRepositoryPresent, dir.open_repository)
- tree = dir.create_workingtree()
+ try:
+ tree = dir.create_workingtree()
+ except errors.NotLocalUrl:
+ raise TestSkipped("cannot make working tree with transport %r"
+ % dir.transport)
self.build_tree(['foo'], transport=dir.root_transport)
tree.add('foo')
tree.commit('revision 1', rev_id='1')
tree.commit('revision 2', rev_id='2', allow_pointless=True)
target = dir.sprout(self.get_url('target'), revision_id='1')
+ try:
+ target.open_workingtree()
+ except (errors.NotLocalUrl, errors.NoWorkingTree):
+ raise TestSkipped("sprout cannot make working tree on transport %r"
+ % target.transport)
self.assertNotEqual(dir.transport.base, target.transport.base)
# we want target to have a branch that is in-place.
self.assertEqual(target, target.open_branch().bzrdir)
@@ -793,7 +899,12 @@
tree.commit('revision 1', rev_id='1')
tree.commit('revision 2', rev_id='2', allow_pointless=True)
dir = tree.bzrdir
- target = dir.sprout(self.get_url('target'), revision_id='1')
+ try:
+ target_url = self.get_url('target')
+ target = dir.sprout(target_url, revision_id='1')
+ except errors.NotLocalUrl:
+ raise TestSkipped("sprout cannot make working tree at %r"
+ % target_url)
self.assertEqual('1', target.open_workingtree().last_revision())
def test_sprout_bzrdir_incomplete_source_with_basis(self):
@@ -810,7 +921,10 @@
tree.copy_content_into(source)
self.assertFalse(source.branch.repository.has_revision('2'))
dir = source.bzrdir
- target = dir.sprout(self.get_url('target'), basis=tree.bzrdir)
+ try:
+ target = dir.sprout(self.get_url('target'), basis=tree.bzrdir)
+ except errors.NotLocalUrl:
+ raise TestSkipped('Cannot sprout to remote bzrdirs.')
self.assertEqual('2', target.open_branch().last_revision())
self.assertEqual('2', target.open_workingtree().last_revision())
self.assertTrue(target.open_branch().repository.has_revision('2'))
@@ -994,8 +1108,8 @@
except errors.IncompatibleFormat:
found_transport = dir.get_branch_transport(identifiable_format)
self.assertTrue(isinstance(found_transport, transport.Transport))
- # and the dir which has been initialized for us must be statable.
- found_transport.stat('.')
+ # and the dir which has been initialized for us must exist.
+ found_transport.list_dir('.')
def test_get_repository_transport(self):
dir = self.make_bzrdir('.')
@@ -1015,8 +1129,8 @@
except errors.IncompatibleFormat:
found_transport = dir.get_repository_transport(identifiable_format)
self.assertTrue(isinstance(found_transport, transport.Transport))
- # and the dir which has been initialized for us must be statable.
- found_transport.stat('.')
+ # and the dir which has been initialized for us must exist.
+ found_transport.list_dir('.')
def test_get_workingtree_transport(self):
dir = self.make_bzrdir('.')
@@ -1036,8 +1150,8 @@
except errors.IncompatibleFormat:
found_transport = dir.get_workingtree_transport(identifiable_format)
self.assertTrue(isinstance(found_transport, transport.Transport))
- # and the dir which has been initialized for us must be statable.
- found_transport.stat('.')
+ # and the dir which has been initialized for us must exist.
+ found_transport.list_dir('.')
def test_root_transport(self):
dir = self.make_bzrdir('.')
@@ -1171,12 +1285,16 @@
dir.needs_format_conversion(None)
def test_upgrade_new_instance(self):
- """Does an available updater work ?."""
+ """Does an available updater work?"""
dir = self.make_bzrdir('.')
- # for now, check is not ready for partial bzrdirs.
+ # for now, upgrade is not ready for partial bzrdirs.
dir.create_repository()
dir.create_branch()
- dir.create_workingtree()
+ try:
+ dir.create_workingtree()
+ except errors.NotLocalUrl:
+ raise TestSkipped(
+ "Cannot make working tree on non-local transport.")
if dir.can_convert_format():
# if its default updatable there must be an updater
# (we change the default to match the lastest known format
More information about the bazaar
mailing list