~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_branch.py

  • Committer: Jelmer Vernooij
  • Date: 2011-02-24 16:09:47 UTC
  • mto: (5582.10.69 weave-fmt-plugin)
  • mto: This revision was merged to the branch mainline in revision 5688.
  • Revision ID: jelmer@samba.org-20110224160947-e7kqclxnjif28v5q
merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
    symbol_versioning,
33
33
    tests,
34
34
    trace,
35
 
    transport,
36
35
    urlutils,
37
36
    )
38
37
 
41
40
 
42
41
    def test_default_format(self):
43
42
        # update this if you change the default branch format
44
 
        self.assertIsInstance(_mod_branch.BranchFormat.get_default_format(),
 
43
        self.assertIsInstance(_mod_branch.format_registry.get_default(),
45
44
                _mod_branch.BzrBranchFormat7)
46
45
 
47
46
    def test_default_format_is_same_as_bzrdir_default(self):
49
48
        # set, but at the moment that's not true -- mbp 20070814 --
50
49
        # https://bugs.launchpad.net/bzr/+bug/132376
51
50
        self.assertEqual(
52
 
            _mod_branch.BranchFormat.get_default_format(),
 
51
            _mod_branch.format_registry.get_default(),
53
52
            bzrdir.BzrDirFormat.get_default_format().get_branch_format())
54
53
 
55
54
    def test_get_set_default_format(self):
56
55
        # set the format and then set it back again
57
 
        old_format = _mod_branch.BranchFormat.get_default_format()
58
 
        _mod_branch.BranchFormat.set_default_format(SampleBranchFormat())
 
56
        old_format = _mod_branch.format_registry.get_default()
 
57
        _mod_branch.format_registry.set_default(SampleBranchFormat())
59
58
        try:
60
59
            # the default branch format is used by the meta dir format
61
60
            # which is not the default bzrdir format at this point
63
62
            result = dir.create_branch()
64
63
            self.assertEqual(result, 'A branch')
65
64
        finally:
66
 
            _mod_branch.BranchFormat.set_default_format(old_format)
 
65
            _mod_branch.format_registry.set_default(old_format)
67
66
        self.assertEqual(old_format,
68
 
                         _mod_branch.BranchFormat.get_default_format())
 
67
                         _mod_branch.format_registry.get_default())
69
68
 
70
69
 
71
70
class TestBranchFormat5(tests.TestCaseWithTransport):
181
180
            self.failUnless(isinstance(found_format, format.__class__))
182
181
        check_format(_mod_branch.BzrBranchFormat5(), "bar")
183
182
 
184
 
    def test_extra_format(self):
185
 
        dir = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
186
 
        SampleSupportedBranchFormat().initialize(dir)
187
 
        format = SampleExtraBranchFormat()
188
 
        _mod_branch.BranchFormat.register_extra_format(format)
189
 
        self.addCleanup(_mod_branch.BranchFormat.unregister_extra_format,
190
 
            format)
191
 
        self.assertTrue(format in _mod_branch.BranchFormat.get_formats())
192
 
        self.assertEquals(format,
193
 
            _mod_branch.network_format_registry.get("extra"))
194
 
 
195
183
    def test_find_format_factory(self):
196
184
        dir = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
197
185
        SampleSupportedBranchFormat().initialize(dir)
198
186
        factory = _mod_branch.MetaDirBranchFormatFactory(
199
187
            SampleSupportedBranchFormatString,
200
188
            "bzrlib.tests.test_branch", "SampleSupportedBranchFormat")
201
 
        _mod_branch.BranchFormat.register_format(factory)
202
 
        self.addCleanup(_mod_branch.BranchFormat.unregister_format, factory)
 
189
        _mod_branch.format_registry.register(factory)
 
190
        self.addCleanup(_mod_branch.format_registry.remove, factory)
203
191
        b = _mod_branch.Branch.open(self.get_url())
204
192
        self.assertEqual(b, "opened supported branch.")
205
193
 
217
205
                          dir)
218
206
 
219
207
    def test_register_unregister_format(self):
 
208
        # Test the deprecated format registration functions
220
209
        format = SampleBranchFormat()
221
210
        # make a control dir
222
211
        dir = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
223
212
        # make a branch
224
213
        format.initialize(dir)
225
214
        # register a format for it.
226
 
        _mod_branch.BranchFormat.register_format(format)
 
215
        self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
 
216
            _mod_branch.BranchFormat.register_format, format)
227
217
        # which branch.Open will refuse (not supported)
228
218
        self.assertRaises(errors.UnsupportedFormatError,
229
219
                          _mod_branch.Branch.open, self.get_url())
233
223
            format.open(dir),
234
224
            bzrdir.BzrDir.open(self.get_url()).open_branch(unsupported=True))
235
225
        # unregister the format
236
 
        _mod_branch.BranchFormat.unregister_format(format)
 
226
        self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
 
227
            _mod_branch.BranchFormat.unregister_format, format)
237
228
        self.make_branch_and_tree('bar')
238
229
 
239
230
 
 
231
class TestBranchFormatRegistry(tests.TestCase):
 
232
 
 
233
    def setUp(self):
 
234
        super(TestBranchFormatRegistry, self).setUp()
 
235
        self.registry = _mod_branch.BranchFormatRegistry()
 
236
 
 
237
    def test_default(self):
 
238
        self.assertIs(None, self.registry.get_default())
 
239
        format = SampleBranchFormat()
 
240
        self.registry.set_default(format)
 
241
        self.assertEquals(format, self.registry.get_default())
 
242
 
 
243
    def test_register_unregister_format(self):
 
244
        format = SampleBranchFormat()
 
245
        self.registry.register(format)
 
246
        self.assertEquals(format,
 
247
            self.registry.get("Sample branch format."))
 
248
        self.registry.remove(format)
 
249
        self.assertRaises(KeyError, self.registry.get,
 
250
            "Sample branch format.")
 
251
 
 
252
    def test_get_all(self):
 
253
        format = SampleBranchFormat()
 
254
        self.assertEquals([], self.registry._get_all())
 
255
        self.registry.register(format)
 
256
        self.assertEquals([format], self.registry._get_all())
 
257
 
 
258
    def test_register_extra(self):
 
259
        format = SampleExtraBranchFormat()
 
260
        self.assertEquals([], self.registry._get_all())
 
261
        self.registry.register_extra(format)
 
262
        self.assertEquals([format], self.registry._get_all())
 
263
 
 
264
    def test_register_extra_lazy(self):
 
265
        self.assertEquals([], self.registry._get_all())
 
266
        self.registry.register_extra_lazy("bzrlib.tests.test_branch",
 
267
            "SampleExtraBranchFormat")
 
268
        formats = self.registry._get_all()
 
269
        self.assertEquals(1, len(formats))
 
270
        self.assertIsInstance(formats[0], SampleExtraBranchFormat)
 
271
 
 
272
 
240
273
#Used by TestMetaDirBranchFormatFactory 
241
274
FakeLazyFormat = None
242
275
 
742
775
                          _mod_branch._run_with_write_locked_target,
743
776
                          lockable, self.func_that_raises)
744
777
        self.assertEqual(['lock_write', 'func called', 'unlock'], self._calls)
745
 
 
746