285
286
self.build_tree(["foo/", "bar/"], transport=t)
286
287
def check_format(format, url):
287
288
format.initialize(url)
288
t = _mod_transport.get_transport(url)
289
t = _mod_transport.get_transport_from_path(url)
289
290
found_format = bzrdir.BzrDirFormat.find_format(t)
290
291
self.assertIsInstance(found_format, format.__class__)
291
292
check_format(BzrDirFormatTest1(), "foo")
294
295
def test_find_format_nothing_there(self):
295
296
self.assertRaises(NotBranchError,
296
297
bzrdir.BzrDirFormat.find_format,
297
_mod_transport.get_transport('.'))
298
_mod_transport.get_transport_from_path('.'))
299
300
def test_find_format_unknown_format(self):
300
301
t = self.get_transport()
302
303
t.put_bytes('.bzr/branch-format', '')
303
304
self.assertRaises(UnknownFormatError,
304
305
bzrdir.BzrDirFormat.find_format,
305
_mod_transport.get_transport('.'))
306
_mod_transport.get_transport_from_path('.'))
307
308
def test_register_unregister_format(self):
308
309
format = SampleBzrDirFormat()
316
317
# which bzrdir.open_containing will refuse (not supported)
317
318
self.assertRaises(UnsupportedFormatError, bzrdir.BzrDir.open_containing, url)
318
319
# but open_downlevel will work
319
t = _mod_transport.get_transport(url)
320
t = _mod_transport.get_transport_from_url(url)
320
321
self.assertEqual(format.open(t), bzrdir.BzrDir.open_unsupported(url))
321
322
# unregister the format
322
323
bzrdir.BzrProber.formats.remove(format.get_format_string())
710
711
def test_open_containing_from_transport(self):
711
712
self.assertRaises(NotBranchError,
712
713
bzrdir.BzrDir.open_containing_from_transport,
713
_mod_transport.get_transport(self.get_readonly_url('')))
714
_mod_transport.get_transport_from_url(self.get_readonly_url('')))
714
715
self.assertRaises(NotBranchError,
715
716
bzrdir.BzrDir.open_containing_from_transport,
716
_mod_transport.get_transport(self.get_readonly_url('g/p/q')))
717
_mod_transport.get_transport_from_url(
718
self.get_readonly_url('g/p/q')))
717
719
control = bzrdir.BzrDir.create(self.get_url())
718
720
branch, relpath = bzrdir.BzrDir.open_containing_from_transport(
719
_mod_transport.get_transport(self.get_readonly_url('')))
721
_mod_transport.get_transport_from_url(
722
self.get_readonly_url('')))
720
723
self.assertEqual('', relpath)
721
724
branch, relpath = bzrdir.BzrDir.open_containing_from_transport(
722
_mod_transport.get_transport(self.get_readonly_url('g/p/q')))
725
_mod_transport.get_transport_from_url(
726
self.get_readonly_url('g/p/q')))
723
727
self.assertEqual('g/p/q', relpath)
725
729
def test_open_containing_tree_or_branch(self):
898
902
def evaluate(bzrdir):
900
904
repo = bzrdir.open_repository()
901
except NoRepositoryPresent:
905
except errors.NoRepositoryPresent:
902
906
return True, bzrdir.root_transport.base
904
908
return False, bzrdir.root_transport.base
1209
1213
def __init__(self, *args, **kwargs):
1210
1214
super(_TestBzrDir, self).__init__(*args, **kwargs)
1211
self.test_branch = _TestBranch()
1215
self.test_branch = _TestBranch(self.transport)
1212
1216
self.test_branch.repository = self.create_repository()
1214
1218
def open_branch(self, unsupported=False):
1225
1229
class _TestBranch(bzrlib.branch.Branch):
1226
1230
"""Test Branch implementation for TestBzrDirSprout."""
1228
def __init__(self, *args, **kwargs):
1232
def __init__(self, transport, *args, **kwargs):
1229
1233
self._format = _TestBranchFormat()
1234
self._transport = transport
1235
self.base = transport.base
1230
1236
super(_TestBranch, self).__init__(*args, **kwargs)
1231
1237
self.calls = []
1232
1238
self._parent = None
1234
1240
def sprout(self, *args, **kwargs):
1235
1241
self.calls.append('sprout')
1236
return _TestBranch()
1242
return _TestBranch(self._transport)
1238
1244
def copy_content_into(self, destination, revision_id=None):
1239
1245
self.calls.append('copy_content_into')