/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test_repository.py

  • Committer: Jelmer Vernooij
  • Date: 2018-11-12 01:41:38 UTC
  • mto: (7143.16.20 even-more-cleanups)
  • mto: This revision was merged to the branch mainline in revision 7175.
  • Revision ID: jelmer@jelmer.uk-20181112014138-3b0zyx91cu3wdq3k
More PEP8 fixes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
import breezy
28
28
from breezy.errors import (
29
29
    UnknownFormatError,
30
 
    UnsupportedFormatError,
31
30
    )
32
31
from breezy import (
33
32
    tests,
142
141
        def check_format(format, url):
143
142
            dir = format._matchingcontroldir.initialize(url)
144
143
            format.initialize(dir)
145
 
            t = transport.get_transport_from_path(url)
146
144
            found_format = bzrrepository.RepositoryFormatMetaDir.find_format(
147
145
                dir)
148
146
            self.assertIsInstance(found_format, format.__class__)
178
176
        self.assertIsInstance(
179
177
            found_format, bzrrepository.RepositoryFormatMetaDir)
180
178
        self.assertEqual(found_format.features.get(b"name"), b"necessity")
181
 
        self.assertRaises(bzrdir.MissingFeature, found_format.check_support_status,
182
 
                          True)
183
 
        self.addCleanup(bzrrepository.RepositoryFormatMetaDir.unregister_feature,
184
 
                        b"name")
 
179
        self.assertRaises(
 
180
            bzrdir.MissingFeature, found_format.check_support_status, True)
 
181
        self.addCleanup(
 
182
            bzrrepository.RepositoryFormatMetaDir.unregister_feature, b"name")
185
183
        bzrrepository.RepositoryFormatMetaDir.register_feature(b"name")
186
184
        found_format.check_support_status(True)
187
185
 
226
224
 
227
225
    def test_attribute__fetch_order(self):
228
226
        """Knits need topological data insertion."""
229
 
        repo = self.make_repository('.',
230
 
                                    format=controldir.format_registry.get('knit')())
 
227
        repo = self.make_repository(
 
228
            '.', format=controldir.format_registry.get('knit')())
231
229
        self.assertEqual('topological', repo._format._fetch_order)
232
230
 
233
231
    def test_attribute__fetch_uses_deltas(self):
234
232
        """Knits reuse deltas."""
235
 
        repo = self.make_repository('.',
236
 
                                    format=controldir.format_registry.get('knit')())
 
233
        repo = self.make_repository(
 
234
            '.', format=controldir.format_registry.get('knit')())
237
235
        self.assertEqual(True, repo._format._fetch_uses_deltas)
238
236
 
239
237
    def test_disk_layout(self):
257
255
        self.assertTrue(S_ISDIR(t.stat('knits').st_mode))
258
256
        self.check_knits(t)
259
257
        # Check per-file knits.
260
 
        branch = control.create_branch()
 
258
        control.create_branch()
261
259
        tree = control.create_workingtree()
262
260
        tree.add(['foo'], [b'Nasty-IdC:'], ['file'])
263
261
        tree.put_file_bytes_non_atomic('foo', b'')
278
276
 
279
277
    def test_shared_disk_layout(self):
280
278
        control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
281
 
        repo = knitrepo.RepositoryFormatKnit1().initialize(control, shared=True)
 
279
        knitrepo.RepositoryFormatKnit1().initialize(control, shared=True)
282
280
        # we want:
283
281
        # format 'Bazaar-NG Knit Repository Format 1'
284
282
        # lock: is a directory
298
296
 
299
297
    def test_shared_no_tree_disk_layout(self):
300
298
        control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
301
 
        repo = knitrepo.RepositoryFormatKnit1().initialize(control, shared=True)
 
299
        repo = knitrepo.RepositoryFormatKnit1().initialize(
 
300
            control, shared=True)
302
301
        repo.set_make_working_trees(False)
303
302
        # we want:
304
303
        # format 'Bazaar-NG Knit Repository Format 1'
327
326
        the whole inventory. So we grab the one from the expected text. Which
328
327
        is valid when the api is not being abused.
329
328
        """
330
 
        repo = self.make_repository('.',
331
 
                                    format=controldir.format_registry.get('knit')())
 
329
        repo = self.make_repository(
 
330
            '.', format=controldir.format_registry.get('knit')())
332
331
        inv_xml = b'<inventory format="5">\n</inventory>\n'
333
332
        inv = repo._deserialise_inventory(b'test-rev-id', inv_xml)
334
333
        self.assertEqual(b'test-rev-id', inv.root.revision)
335
334
 
336
335
    def test_deserialise_uses_global_revision_id(self):
337
336
        """If it is set, then we re-use the global revision id"""
338
 
        repo = self.make_repository('.',
339
 
                                    format=controldir.format_registry.get('knit')())
 
337
        repo = self.make_repository(
 
338
            '.', format=controldir.format_registry.get('knit')())
340
339
        inv_xml = (b'<inventory format="5" revision_id="other-rev-id">\n'
341
340
                   b'</inventory>\n')
342
341
        # Arguably, the deserialise_inventory should detect a mismatch, and
348
347
        self.assertEqual(b'other-rev-id', inv.root.revision)
349
348
 
350
349
    def test_supports_external_lookups(self):
351
 
        repo = self.make_repository('.',
352
 
                                    format=controldir.format_registry.get('knit')())
 
350
        repo = self.make_repository(
 
351
            '.', format=controldir.format_registry.get('knit')())
353
352
        self.assertFalse(repo._format.supports_external_lookups)
354
353
 
355
354
 
428
427
        repo = self.make_repository('.')
429
428
        # hack dummies to look like repo somewhat.
430
429
        dummy_a._serializer = repo._serializer
431
 
        dummy_a._format.supports_tree_reference = repo._format.supports_tree_reference
 
430
        dummy_a._format.supports_tree_reference = (
 
431
            repo._format.supports_tree_reference)
432
432
        dummy_a._format.rich_root_data = repo._format.rich_root_data
433
 
        dummy_a._format.supports_full_versioned_files = repo._format.supports_full_versioned_files
 
433
        dummy_a._format.supports_full_versioned_files = (
 
434
            repo._format.supports_full_versioned_files)
434
435
        dummy_b._serializer = repo._serializer
435
 
        dummy_b._format.supports_tree_reference = repo._format.supports_tree_reference
 
436
        dummy_b._format.supports_tree_reference = (
 
437
            repo._format.supports_tree_reference)
436
438
        dummy_b._format.rich_root_data = repo._format.rich_root_data
437
 
        dummy_b._format.supports_full_versioned_files = repo._format.supports_full_versioned_files
 
439
        dummy_b._format.supports_full_versioned_files = (
 
440
            repo._format.supports_full_versioned_files)
438
441
        repository.InterRepository.register_optimiser(InterDummy)
439
442
        try:
440
443
            # we should get the default for something InterDummy returns False
532
535
        revision_tree = tree.branch.repository.revision_tree(b'dull2')
533
536
        revision_tree.lock_read()
534
537
        self.addCleanup(revision_tree.unlock)
535
 
        self.assertEqual(b'dull',
536
 
                         revision_tree.get_file_revision(u'', revision_tree.get_root_id()))
 
538
        self.assertEqual(
 
539
            b'dull',
 
540
            revision_tree.get_file_revision(u'', revision_tree.get_root_id()))
537
541
 
538
542
    def test_supports_external_lookups(self):
539
543
        format = bzrdir.BzrDirMetaFormat1()
648
652
        inv.parent_id_basename_to_file_id._ensure_root()
649
653
        inv.id_to_entry._ensure_root()
650
654
        self.assertEqual(65536, inv.id_to_entry._root_node.maximum_size)
651
 
        self.assertEqual(65536,
652
 
                         inv.parent_id_basename_to_file_id._root_node.maximum_size)
 
655
        self.assertEqual(
 
656
            65536, inv.parent_id_basename_to_file_id._root_node.maximum_size)
653
657
 
654
658
    def test_autopack_unchanged_chk_nodes(self):
655
659
        # at 20 unchanged commits, chk pages are packed that are split into
847
851
        super(TestDevelopment6FindParentIdsOfRevisions, self).setUp()
848
852
        self.builder = self.make_branch_builder('source')
849
853
        self.builder.start_series()
850
 
        self.builder.build_snapshot(None,
851
 
                                    [('add', ('', b'tree-root', 'directory', None))],
852
 
                                    revision_id=b'initial')
 
854
        self.builder.build_snapshot(
 
855
            None,
 
856
            [('add', ('', b'tree-root', 'directory', None))],
 
857
            revision_id=b'initial')
853
858
        self.repo = self.builder.get_branch().repository
854
859
        self.addCleanup(self.builder.finish_series)
855
860
 
856
861
    def assertParentIds(self, expected_result, rev_set):
857
 
        self.assertEqual(sorted(expected_result),
858
 
                         sorted(self.repo._find_parent_ids_of_revisions(rev_set)))
 
862
        self.assertEqual(
 
863
            sorted(expected_result),
 
864
            sorted(self.repo._find_parent_ids_of_revisions(rev_set)))
859
865
 
860
866
    def test_simple(self):
861
867
        self.builder.build_snapshot(None, [], revision_id=b'revid1')
921
927
            self.add_file(repo, inv, 'file1', b'rev1a', [])
922
928
            repo.texts.add_lines((inv.root.file_id, b'rev1a'), [], [])
923
929
            repo.add_inventory(b'rev1a', inv, [])
924
 
            revision = _mod_revision.Revision(b'rev1a',
925
 
                                              committer='jrandom@example.com', timestamp=0,
926
 
                                              inventory_sha1='', timezone=0, message='foo', parent_ids=[])
 
930
            revision = _mod_revision.Revision(
 
931
                b'rev1a',
 
932
                committer='jrandom@example.com', timestamp=0,
 
933
                inventory_sha1='', timezone=0, message='foo', parent_ids=[])
927
934
            repo.add_revision(b'rev1a', revision, inv)
928
935
 
929
936
            # make rev1b, which has no Revision, but has an Inventory, and
962
969
        inv.root.revision = revision_id
963
970
        repo.texts.add_lines((inv.root.file_id, revision_id), [], [])
964
971
        repo.add_inventory(revision_id, inv, parent_ids)
965
 
        revision = _mod_revision.Revision(revision_id,
966
 
                                          committer='jrandom@example.com', timestamp=0, inventory_sha1='',
967
 
                                          timezone=0, message='foo', parent_ids=parent_ids)
 
972
        revision = _mod_revision.Revision(
 
973
            revision_id,
 
974
            committer='jrandom@example.com', timestamp=0, inventory_sha1='',
 
975
            timezone=0, message='foo', parent_ids=parent_ids)
968
976
        repo.add_revision(revision_id, revision, inv)
969
977
 
970
978
    def add_file(self, repo, inv, filename, revision, parents):
1258
1266
        inv_index = GraphIndex(packs._index_transport, name + '.iix', sizes[1])
1259
1267
        txt_index = GraphIndex(packs._index_transport, name + '.tix', sizes[2])
1260
1268
        sig_index = GraphIndex(packs._index_transport, name + '.six', sizes[3])
1261
 
        self.assertEqual(pack_repo.ExistingPack(packs._pack_transport,
1262
 
                                                name, rev_index, inv_index, txt_index, sig_index), pack_1)
 
1269
        self.assertEqual(
 
1270
            pack_repo.ExistingPack(
 
1271
                packs._pack_transport, name, rev_index, inv_index, txt_index,
 
1272
                sig_index), pack_1)
1263
1273
        # and the same instance should be returned on successive calls.
1264
1274
        self.assertTrue(pack_1 is packs.get_pack_by_name(name))
1265
1275
 
1341
1351
            (b'bogus-rev',), (), None, b'bogus-content\n')])
1342
1352
        # This should trigger an autopack, which will combine everything into a
1343
1353
        # single pack file.
1344
 
        new_names = r.commit_write_group()
 
1354
        r.commit_write_group()
1345
1355
        names = packs.names()
1346
1356
        self.assertEqual(1, len(names))
1347
1357
        self.assertEqual([names[0] + '.pack'],
1520
1530
        # The new ordering moves B & C to the front of the .packs attribute,
1521
1531
        # and leaves the others in the original order.
1522
1532
        new_packs = [packs[1], packs[2], packs[0], packs[3]]
1523
 
        new_pack = packer.pack()
 
1533
        packer.pack()
1524
1534
        self.assertEqual(new_packs, packer.packs)
1525
1535
 
1526
1536
 
1685
1695
        source_tree = self.make_branch_and_tree('src', format=src_fmt)
1686
1696
        source_tree.lock_write()
1687
1697
        self.addCleanup(source_tree.unlock)
1688
 
        tip = source_tree.commit('foo')
 
1698
        source_tree.commit('foo')
1689
1699
        target = self.make_repository('target', format=target_fmt)
1690
1700
        target.lock_write()
1691
1701
        self.addCleanup(target.unlock)