238
251
def test_create_repository_under_shared(self):
239
252
# an explicit create_repository always does so.
240
253
# we trust the format is right from the 'create_repository test'
241
old_format = bzrdir.BzrDirFormat.get_default_format()
242
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
244
self.make_repository('.', shared=True)
245
repo = bzrdir.BzrDir.create_repository(self.get_url('child'))
246
self.assertTrue(isinstance(repo, repository.Repository))
247
self.assertTrue(repo.bzrdir.root_transport.base.endswith('child/'))
249
bzrdir.BzrDirFormat.set_default_format(old_format)
254
format = bzrdir.format_registry.make_bzrdir('knit')
255
self.make_repository('.', shared=True, format=format)
256
repo = bzrdir.BzrDir.create_repository(self.get_url('child'),
258
self.assertTrue(isinstance(repo, repository.Repository))
259
self.assertTrue(repo.bzrdir.root_transport.base.endswith('child/'))
251
261
def test_create_branch_and_repo_uses_default(self):
252
262
format = SampleBzrDirFormat()
253
old_format = bzrdir.BzrDirFormat.get_default_format()
254
bzrdir.BzrDirFormat.set_default_format(format)
256
branch = bzrdir.BzrDir.create_branch_and_repo(self.get_url())
257
self.assertTrue(isinstance(branch, SampleBranch))
259
bzrdir.BzrDirFormat.set_default_format(old_format)
263
branch = bzrdir.BzrDir.create_branch_and_repo(self.get_url(),
265
self.assertTrue(isinstance(branch, SampleBranch))
261
267
def test_create_branch_and_repo_under_shared(self):
262
268
# creating a branch and repo in a shared repo uses the
263
269
# shared repository
264
old_format = bzrdir.BzrDirFormat.get_default_format()
265
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
267
self.make_repository('.', shared=True)
268
branch = bzrdir.BzrDir.create_branch_and_repo(self.get_url('child'))
269
self.assertRaises(errors.NoRepositoryPresent,
270
branch.bzrdir.open_repository)
272
bzrdir.BzrDirFormat.set_default_format(old_format)
270
format = bzrdir.format_registry.make_bzrdir('knit')
271
self.make_repository('.', shared=True, format=format)
272
branch = bzrdir.BzrDir.create_branch_and_repo(
273
self.get_url('child'), format=format)
274
self.assertRaises(errors.NoRepositoryPresent,
275
branch.bzrdir.open_repository)
274
277
def test_create_branch_and_repo_under_shared_force_new(self):
275
278
# creating a branch and repo in a shared repo can be forced to
276
279
# make a new repo
277
old_format = bzrdir.BzrDirFormat.get_default_format()
278
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
280
self.make_repository('.', shared=True)
281
branch = bzrdir.BzrDir.create_branch_and_repo(self.get_url('child'),
283
branch.bzrdir.open_repository()
285
bzrdir.BzrDirFormat.set_default_format(old_format)
280
format = bzrdir.format_registry.make_bzrdir('knit')
281
self.make_repository('.', shared=True, format=format)
282
branch = bzrdir.BzrDir.create_branch_and_repo(self.get_url('child'),
285
branch.bzrdir.open_repository()
287
287
def test_create_standalone_working_tree(self):
288
288
format = SampleBzrDirFormat()
289
old_format = bzrdir.BzrDirFormat.get_default_format()
290
bzrdir.BzrDirFormat.set_default_format(format)
292
# note this is deliberately readonly, as this failure should
293
# occur before any writes.
294
self.assertRaises(errors.NotLocalUrl,
295
bzrdir.BzrDir.create_standalone_workingtree,
296
self.get_readonly_url())
297
tree = bzrdir.BzrDir.create_standalone_workingtree('.')
298
self.assertEqual('A tree', tree)
300
bzrdir.BzrDirFormat.set_default_format(old_format)
289
# note this is deliberately readonly, as this failure should
290
# occur before any writes.
291
self.assertRaises(errors.NotLocalUrl,
292
bzrdir.BzrDir.create_standalone_workingtree,
293
self.get_readonly_url(), format=format)
294
tree = bzrdir.BzrDir.create_standalone_workingtree('.',
296
self.assertEqual('A tree', tree)
302
298
def test_create_standalone_working_tree_under_shared_repo(self):
303
299
# create standalone working tree always makes a repo.
304
old_format = bzrdir.BzrDirFormat.get_default_format()
305
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
307
self.make_repository('.', shared=True)
308
# note this is deliberately readonly, as this failure should
309
# occur before any writes.
310
self.assertRaises(errors.NotLocalUrl,
311
bzrdir.BzrDir.create_standalone_workingtree,
312
self.get_readonly_url('child'))
313
tree = bzrdir.BzrDir.create_standalone_workingtree('child')
314
tree.bzrdir.open_repository()
316
bzrdir.BzrDirFormat.set_default_format(old_format)
300
format = bzrdir.format_registry.make_bzrdir('knit')
301
self.make_repository('.', shared=True, format=format)
302
# note this is deliberately readonly, as this failure should
303
# occur before any writes.
304
self.assertRaises(errors.NotLocalUrl,
305
bzrdir.BzrDir.create_standalone_workingtree,
306
self.get_readonly_url('child'), format=format)
307
tree = bzrdir.BzrDir.create_standalone_workingtree('child',
309
tree.bzrdir.open_repository()
318
311
def test_create_branch_convenience(self):
319
312
# outside a repo the default convenience output is a repo+branch_tree
320
old_format = bzrdir.BzrDirFormat.get_default_format()
321
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
323
branch = bzrdir.BzrDir.create_branch_convenience('.')
324
branch.bzrdir.open_workingtree()
325
branch.bzrdir.open_repository()
327
bzrdir.BzrDirFormat.set_default_format(old_format)
313
format = bzrdir.format_registry.make_bzrdir('knit')
314
branch = bzrdir.BzrDir.create_branch_convenience('.', format=format)
315
branch.bzrdir.open_workingtree()
316
branch.bzrdir.open_repository()
329
318
def test_create_branch_convenience_root(self):
330
319
"""Creating a branch at the root of a fs should work."""
331
320
self.transport_server = MemoryServer
332
321
# outside a repo the default convenience output is a repo+branch_tree
333
old_format = bzrdir.BzrDirFormat.get_default_format()
334
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
336
branch = bzrdir.BzrDir.create_branch_convenience(self.get_url())
337
self.assertRaises(errors.NoWorkingTree,
338
branch.bzrdir.open_workingtree)
339
branch.bzrdir.open_repository()
341
bzrdir.BzrDirFormat.set_default_format(old_format)
322
format = bzrdir.format_registry.make_bzrdir('knit')
323
branch = bzrdir.BzrDir.create_branch_convenience(self.get_url(),
325
self.assertRaises(errors.NoWorkingTree,
326
branch.bzrdir.open_workingtree)
327
branch.bzrdir.open_repository()
343
329
def test_create_branch_convenience_under_shared_repo(self):
344
330
# inside a repo the default convenience output is a branch+ follow the
345
331
# repo tree policy
346
old_format = bzrdir.BzrDirFormat.get_default_format()
347
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
349
self.make_repository('.', shared=True)
350
branch = bzrdir.BzrDir.create_branch_convenience('child')
351
branch.bzrdir.open_workingtree()
352
self.assertRaises(errors.NoRepositoryPresent,
353
branch.bzrdir.open_repository)
355
bzrdir.BzrDirFormat.set_default_format(old_format)
332
format = bzrdir.format_registry.make_bzrdir('knit')
333
self.make_repository('.', shared=True, format=format)
334
branch = bzrdir.BzrDir.create_branch_convenience('child',
336
branch.bzrdir.open_workingtree()
337
self.assertRaises(errors.NoRepositoryPresent,
338
branch.bzrdir.open_repository)
357
340
def test_create_branch_convenience_under_shared_repo_force_no_tree(self):
358
341
# inside a repo the default convenience output is a branch+ follow the
359
342
# repo tree policy but we can override that
360
old_format = bzrdir.BzrDirFormat.get_default_format()
361
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
363
self.make_repository('.', shared=True)
364
branch = bzrdir.BzrDir.create_branch_convenience('child',
365
force_new_tree=False)
366
self.assertRaises(errors.NoWorkingTree,
367
branch.bzrdir.open_workingtree)
368
self.assertRaises(errors.NoRepositoryPresent,
369
branch.bzrdir.open_repository)
371
bzrdir.BzrDirFormat.set_default_format(old_format)
343
format = bzrdir.format_registry.make_bzrdir('knit')
344
self.make_repository('.', shared=True, format=format)
345
branch = bzrdir.BzrDir.create_branch_convenience('child',
346
force_new_tree=False, format=format)
347
self.assertRaises(errors.NoWorkingTree,
348
branch.bzrdir.open_workingtree)
349
self.assertRaises(errors.NoRepositoryPresent,
350
branch.bzrdir.open_repository)
373
352
def test_create_branch_convenience_under_shared_repo_no_tree_policy(self):
374
353
# inside a repo the default convenience output is a branch+ follow the
375
354
# repo tree policy
376
old_format = bzrdir.BzrDirFormat.get_default_format()
377
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
379
repo = self.make_repository('.', shared=True)
380
repo.set_make_working_trees(False)
381
branch = bzrdir.BzrDir.create_branch_convenience('child')
382
self.assertRaises(errors.NoWorkingTree,
383
branch.bzrdir.open_workingtree)
384
self.assertRaises(errors.NoRepositoryPresent,
385
branch.bzrdir.open_repository)
387
bzrdir.BzrDirFormat.set_default_format(old_format)
355
format = bzrdir.format_registry.make_bzrdir('knit')
356
repo = self.make_repository('.', shared=True, format=format)
357
repo.set_make_working_trees(False)
358
branch = bzrdir.BzrDir.create_branch_convenience('child',
360
self.assertRaises(errors.NoWorkingTree,
361
branch.bzrdir.open_workingtree)
362
self.assertRaises(errors.NoRepositoryPresent,
363
branch.bzrdir.open_repository)
389
365
def test_create_branch_convenience_under_shared_repo_no_tree_policy_force_tree(self):
390
366
# inside a repo the default convenience output is a branch+ follow the
391
367
# repo tree policy but we can override that
392
old_format = bzrdir.BzrDirFormat.get_default_format()
393
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
395
repo = self.make_repository('.', shared=True)
396
repo.set_make_working_trees(False)
397
branch = bzrdir.BzrDir.create_branch_convenience('child',
399
branch.bzrdir.open_workingtree()
400
self.assertRaises(errors.NoRepositoryPresent,
401
branch.bzrdir.open_repository)
403
bzrdir.BzrDirFormat.set_default_format(old_format)
368
format = bzrdir.format_registry.make_bzrdir('knit')
369
repo = self.make_repository('.', shared=True, format=format)
370
repo.set_make_working_trees(False)
371
branch = bzrdir.BzrDir.create_branch_convenience('child',
372
force_new_tree=True, format=format)
373
branch.bzrdir.open_workingtree()
374
self.assertRaises(errors.NoRepositoryPresent,
375
branch.bzrdir.open_repository)
405
377
def test_create_branch_convenience_under_shared_repo_force_new_repo(self):
406
378
# inside a repo the default convenience output is overridable to give
407
379
# repo+branch+tree
408
old_format = bzrdir.BzrDirFormat.get_default_format()
409
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
411
self.make_repository('.', shared=True)
412
branch = bzrdir.BzrDir.create_branch_convenience('child',
414
branch.bzrdir.open_repository()
415
branch.bzrdir.open_workingtree()
417
bzrdir.BzrDirFormat.set_default_format(old_format)
380
format = bzrdir.format_registry.make_bzrdir('knit')
381
self.make_repository('.', shared=True, format=format)
382
branch = bzrdir.BzrDir.create_branch_convenience('child',
383
force_new_repo=True, format=format)
384
branch.bzrdir.open_repository()
385
branch.bzrdir.open_workingtree()
420
388
class ChrootedTests(TestCaseWithTransport):