~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_branch.py

  • Committer: Martin Pool
  • Date: 2011-02-07 01:39:42 UTC
  • mto: This revision was merged to the branch mainline in revision 5650.
  • Revision ID: mbp@canonical.com-20110207013942-roj88kez6jir13tr
Add brief user documentation of command line splitting

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
    symbol_versioning,
33
33
    tests,
34
34
    trace,
 
35
    transport,
35
36
    urlutils,
36
37
    )
37
38
 
40
41
 
41
42
    def test_default_format(self):
42
43
        # update this if you change the default branch format
43
 
        self.assertIsInstance(_mod_branch.format_registry.get_default(),
 
44
        self.assertIsInstance(_mod_branch.BranchFormat.get_default_format(),
44
45
                _mod_branch.BzrBranchFormat7)
45
46
 
46
47
    def test_default_format_is_same_as_bzrdir_default(self):
48
49
        # set, but at the moment that's not true -- mbp 20070814 --
49
50
        # https://bugs.launchpad.net/bzr/+bug/132376
50
51
        self.assertEqual(
51
 
            _mod_branch.format_registry.get_default(),
 
52
            _mod_branch.BranchFormat.get_default_format(),
52
53
            bzrdir.BzrDirFormat.get_default_format().get_branch_format())
53
54
 
54
55
    def test_get_set_default_format(self):
55
56
        # set the format and then set it back again
56
 
        old_format = _mod_branch.format_registry.get_default()
57
 
        _mod_branch.format_registry.set_default(SampleBranchFormat())
 
57
        old_format = _mod_branch.BranchFormat.get_default_format()
 
58
        _mod_branch.BranchFormat.set_default_format(SampleBranchFormat())
58
59
        try:
59
60
            # the default branch format is used by the meta dir format
60
61
            # which is not the default bzrdir format at this point
62
63
            result = dir.create_branch()
63
64
            self.assertEqual(result, 'A branch')
64
65
        finally:
65
 
            _mod_branch.format_registry.set_default(old_format)
 
66
            _mod_branch.BranchFormat.set_default_format(old_format)
66
67
        self.assertEqual(old_format,
67
 
                         _mod_branch.format_registry.get_default())
 
68
                         _mod_branch.BranchFormat.get_default_format())
68
69
 
69
70
 
70
71
class TestBranchFormat5(tests.TestCaseWithTransport):
177
178
            dir.create_repository()
178
179
            format.initialize(dir)
179
180
            found_format = _mod_branch.BranchFormat.find_format(dir)
180
 
            self.assertIsInstance(found_format, format.__class__)
 
181
            self.failUnless(isinstance(found_format, format.__class__))
181
182
        check_format(_mod_branch.BzrBranchFormat5(), "bar")
182
183
 
 
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
 
183
195
    def test_find_format_factory(self):
184
196
        dir = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
185
197
        SampleSupportedBranchFormat().initialize(dir)
186
198
        factory = _mod_branch.MetaDirBranchFormatFactory(
187
199
            SampleSupportedBranchFormatString,
188
200
            "bzrlib.tests.test_branch", "SampleSupportedBranchFormat")
189
 
        _mod_branch.format_registry.register(factory)
190
 
        self.addCleanup(_mod_branch.format_registry.remove, factory)
 
201
        _mod_branch.BranchFormat.register_format(factory)
 
202
        self.addCleanup(_mod_branch.BranchFormat.unregister_format, factory)
191
203
        b = _mod_branch.Branch.open(self.get_url())
192
204
        self.assertEqual(b, "opened supported branch.")
193
205
 
205
217
                          dir)
206
218
 
207
219
    def test_register_unregister_format(self):
208
 
        # Test the deprecated format registration functions
209
220
        format = SampleBranchFormat()
210
221
        # make a control dir
211
222
        dir = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
212
223
        # make a branch
213
224
        format.initialize(dir)
214
225
        # register a format for it.
215
 
        self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
216
 
            _mod_branch.BranchFormat.register_format, format)
 
226
        _mod_branch.BranchFormat.register_format(format)
217
227
        # which branch.Open will refuse (not supported)
218
228
        self.assertRaises(errors.UnsupportedFormatError,
219
229
                          _mod_branch.Branch.open, self.get_url())
223
233
            format.open(dir),
224
234
            bzrdir.BzrDir.open(self.get_url()).open_branch(unsupported=True))
225
235
        # unregister the format
226
 
        self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
227
 
            _mod_branch.BranchFormat.unregister_format, format)
 
236
        _mod_branch.BranchFormat.unregister_format(format)
228
237
        self.make_branch_and_tree('bar')
229
238
 
230
239
 
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
 
 
273
240
#Used by TestMetaDirBranchFormatFactory 
274
241
FakeLazyFormat = None
275
242
 
322
289
 
323
290
    def test_layout(self):
324
291
        branch = self.make_branch('a', format=self.get_format_name())
325
 
        self.assertPathExists('a/.bzr/branch/last-revision')
326
 
        self.assertPathDoesNotExist('a/.bzr/branch/revision-history')
327
 
        self.assertPathDoesNotExist('a/.bzr/branch/references')
 
292
        self.failUnlessExists('a/.bzr/branch/last-revision')
 
293
        self.failIfExists('a/.bzr/branch/revision-history')
 
294
        self.failIfExists('a/.bzr/branch/references')
328
295
 
329
296
    def test_config(self):
330
297
        """Ensure that all configuration data is stored in the branch"""
331
298
        branch = self.make_branch('a', format=self.get_format_name())
332
299
        branch.set_parent('http://example.com')
333
 
        self.assertPathDoesNotExist('a/.bzr/branch/parent')
 
300
        self.failIfExists('a/.bzr/branch/parent')
334
301
        self.assertEqual('http://example.com', branch.get_parent())
335
302
        branch.set_push_location('sftp://example.com')
336
303
        config = branch.get_config()._get_branch_data_config()
337
304
        self.assertEqual('sftp://example.com',
338
305
                         config.get_user_option('push_location'))
339
306
        branch.set_bound_location('ftp://example.com')
340
 
        self.assertPathDoesNotExist('a/.bzr/branch/bound')
 
307
        self.failIfExists('a/.bzr/branch/bound')
341
308
        self.assertEqual('ftp://example.com', branch.get_bound_location())
342
309
 
343
310
    def test_set_revision_history(self):
349
316
        branch = builder.get_branch()
350
317
        branch.lock_write()
351
318
        self.addCleanup(branch.unlock)
352
 
        self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
353
 
            branch.set_revision_history, ['foo', 'bar'])
354
 
        self.applyDeprecated(symbol_versioning.deprecated_in((2, 4, 0)),
355
 
                branch.set_revision_history, ['foo'])
 
319
        branch.set_revision_history(['foo', 'bar'])
 
320
        branch.set_revision_history(['foo'])
356
321
        self.assertRaises(errors.NotLefthandHistory,
357
 
            self.applyDeprecated, symbol_versioning.deprecated_in((2, 4, 0)),
358
 
            branch.set_revision_history, ['bar'])
 
322
                          branch.set_revision_history, ['bar'])
359
323
 
360
324
    def do_checkout_test(self, lightweight=False):
361
325
        tree = self.make_branch_and_tree('source',
374
338
        subtree.commit('a subtree file')
375
339
        subsubtree.commit('a subsubtree file')
376
340
        tree.branch.create_checkout('target', lightweight=lightweight)
377
 
        self.assertPathExists('target')
378
 
        self.assertPathExists('target/subtree')
379
 
        self.assertPathExists('target/subtree/file')
380
 
        self.assertPathExists('target/subtree/subsubtree/file')
 
341
        self.failUnlessExists('target')
 
342
        self.failUnlessExists('target/subtree')
 
343
        self.failUnlessExists('target/subtree/file')
 
344
        self.failUnlessExists('target/subtree/subsubtree/file')
381
345
        subbranch = _mod_branch.Branch.open('target/subtree/subsubtree')
382
346
        if lightweight:
383
347
            self.assertEndsWith(subbranch.base, 'source/subtree/subsubtree/')
778
742
                          _mod_branch._run_with_write_locked_target,
779
743
                          lockable, self.func_that_raises)
780
744
        self.assertEqual(['lock_write', 'func called', 'unlock'], self._calls)
 
745
 
 
746