218
218
workingtree.WorkingTreeFormatMetaDir.find_format,
221
def test_register_unregister_format(self):
222
format = SampleTreeFormat()
224
dir = bzrdir.BzrDirMetaFormat1().initialize('.')
225
dir.create_repository()
228
format.initialize(dir)
229
# register a format for it.
230
self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
231
workingtree.WorkingTreeFormat.register_format, format)
232
self.assertTrue(format in
233
self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
234
workingtree.WorkingTreeFormat.get_formats))
235
# which branch.Open will refuse (not supported)
236
self.assertRaises(errors.UnsupportedFormatError, workingtree.WorkingTree.open, '.')
237
# but open_downlevel will work
238
self.assertEqual(format.open(dir), workingtree.WorkingTree.open_downlevel('.'))
239
# unregister the format
240
self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
241
workingtree.WorkingTreeFormat.unregister_format, format)
242
self.assertFalse(format in
243
self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
244
workingtree.WorkingTreeFormat.get_formats))
246
221
def test_find_format_with_features(self):
247
222
tree = self.make_branch_and_tree('.', format='2a')
248
223
tree.update_feature_flags({"name": "necessity"})