68
68
def test_get_set_default_format(self):
69
69
old_format = workingtree.format_registry.get_default()
71
self.assertTrue(isinstance(old_format, workingtree_4.WorkingTreeFormat6))
71
self.assertTrue(isinstance(
72
old_format, workingtree_4.WorkingTreeFormat6))
72
73
workingtree.format_registry.set_default(SampleTreeFormat())
74
75
# the default branch format is used by the meta dir format
87
88
SampleTreeFormat.from_string(b"Sample tree format."),
89
90
self.assertRaises(AssertionError,
90
SampleTreeFormat.from_string, b"Different format string.")
91
SampleTreeFormat.from_string, b"Different format string.")
92
93
def test_get_set_default_format_by_key(self):
93
94
old_format = workingtree.format_registry.get_default()
95
96
format = SampleTreeFormat()
96
97
workingtree.format_registry.register(format)
97
98
self.addCleanup(workingtree.format_registry.remove, format)
98
self.assertTrue(isinstance(old_format, workingtree_4.WorkingTreeFormat6))
99
self.assertTrue(isinstance(
100
old_format, workingtree_4.WorkingTreeFormat6))
99
101
workingtree.format_registry.set_default_key(format.get_format_string())
101
103
# the default branch format is used by the meta dir format
125
127
open_no_args, relpath = workingtree.WorkingTree.open_containing()
126
128
self.assertEqual(tree.basedir, open_no_args.basedir)
127
129
self.assertEqual('', relpath)
128
open_subdir, relpath = workingtree.WorkingTree.open_containing('subdir')
130
open_subdir, relpath = workingtree.WorkingTree.open_containing(
129
132
self.assertEqual(tree.basedir, open_subdir.basedir)
130
133
self.assertEqual('subdir', relpath)
183
186
# is the right format object found for a working tree?
184
187
branch = self.make_branch('branch')
185
188
self.assertRaises(errors.NoWorkingTree,
186
bzrworkingtree.WorkingTreeFormatMetaDir.find_format_string, branch.controldir)
189
bzrworkingtree.WorkingTreeFormatMetaDir.find_format_string, branch.controldir)
187
190
transport = branch.controldir.get_workingtree_transport(None)
188
191
transport.mkdir('.')
189
192
transport.put_bytes("format", b"some format name")
190
193
# The format does not have to be known by Bazaar,
191
194
# find_format_string just retrieves the name
192
195
self.assertEqual(b"some format name",
193
bzrworkingtree.WorkingTreeFormatMetaDir.find_format_string(branch.controldir))
196
bzrworkingtree.WorkingTreeFormatMetaDir.find_format_string(branch.controldir))
195
198
def test_find_format(self):
196
199
# is the right format object found for a working tree?
197
200
# create a branch with a few known format objects.
198
201
self.build_tree(["foo/", "bar/"])
199
203
def check_format(format, url):
200
204
dir = format._matchingcontroldir.initialize(url)
201
205
dir.create_repository()
202
206
dir.create_branch()
203
207
format.initialize(dir)
204
208
t = transport.get_transport(url)
205
found_format = bzrworkingtree.WorkingTreeFormatMetaDir.find_format(dir)
209
found_format = bzrworkingtree.WorkingTreeFormatMetaDir.find_format(
206
211
self.assertIsInstance(found_format, format.__class__)
207
212
check_format(workingtree_3.WorkingTreeFormat3(), "bar")
229
234
self.assertIsInstance(found_format, workingtree.WorkingTreeFormat)
230
235
self.assertEqual(found_format.features.get(b"name"), b"necessity")
231
236
self.assertRaises(bzrdir.MissingFeature, found_format.check_support_status,
233
238
self.addCleanup(bzrworkingtree.WorkingTreeFormatMetaDir.unregister_feature,
235
240
bzrworkingtree.WorkingTreeFormatMetaDir.register_feature(b"name")
236
241
found_format.check_support_status(True)
306
311
def test_register_extra_lazy(self):
307
312
self.assertEqual([], self.registry._get_all())
308
313
self.registry.register_extra_lazy("breezy.tests.test_workingtree",
309
"SampleExtraTreeFormat")
314
"SampleExtraTreeFormat")
310
315
formats = self.registry._get_all()
311
316
self.assertEqual(1, len(formats))
312
317
self.assertIsInstance(formats[0], SampleExtraTreeFormat)
330
335
self.assertEqualDiff(b'Bazaar-NG Working Tree format 3',
331
336
t.get('format').read())
332
337
self.assertEqualDiff(t.get('inventory').read(),
333
b'<inventory format="5">\n'
338
b'<inventory format="5">\n'
336
341
self.assertEqualDiff(b'### bzr hashcache v5\n',
337
342
t.get('stat-cache').read())
382
387
('this-tree/foo/bar', b'bar')])
383
388
this_tree.add(['foo', 'foo/bar'])
384
389
this_tree.commit('created foo/bar')
385
other_tree = this_tree.controldir.sprout('other-tree').open_workingtree()
390
other_tree = this_tree.controldir.sprout(
391
'other-tree').open_workingtree()
386
392
self.build_tree_contents([('other-tree/foo/bar', b'baz')])
387
393
other_tree.commit('changed bar')
388
394
self.build_tree_contents([('this-tree/foo/bar', b'qux')])