/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_inv.py

  • Committer: Jelmer Vernooij
  • Date: 2018-07-24 22:35:56 UTC
  • mto: This revision was merged to the branch mainline in revision 7054.
  • Revision ID: jelmer@jelmer.uk-20180724223556-8a1dk9hr78j193f8
Fix remaining test_inv tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
495
495
 
496
496
    def test_parent_is_missing(self):
497
497
        inv = self.get_empty_inventory()
498
 
        file2 = inventory.InventoryFile(b'id2', 'path2', 'missingparent')
 
498
        file2 = inventory.InventoryFile(b'id2', 'path2', b'missingparent')
499
499
        file2.revision = b'result'
500
500
        file2.text_size = 0
501
501
        file2.text_sha1 = b""
1102
1102
 
1103
1103
    def test_create_by_apply_delta_sets_root(self):
1104
1104
        inv = Inventory()
 
1105
        inv.root.revision = b"myrootrev"
1105
1106
        inv.revision_id = b"revid"
1106
1107
        chk_bytes = self.get_chk_bytes()
1107
1108
        base_inv = CHKInventory.from_inventory(chk_bytes, inv)
1108
1109
        inv.add_path("", "directory", b"myrootid", None)
1109
 
        inv.revision_id = "expectedid"
 
1110
        inv.revision_id = b"expectedid"
 
1111
        inv.root.revision = b"myrootrev"
1110
1112
        reference_inv = CHKInventory.from_inventory(chk_bytes, inv)
1111
1113
        delta = [("", None, base_inv.root.file_id, None),
1112
1114
            (None, "",  b"myrootid", inv.root)]
1331
1333
        inv.get_entry(b"fileid").text_sha1 = b"ffff"
1332
1334
        inv.get_entry(b"fileid").text_size = 0
1333
1335
        inv.add(InventoryDirectory(b"dirid", u'dir-\N{EURO SIGN}', root_id))
 
1336
        inv.get_entry(b"dirid").revision = b"dirrev"
1334
1337
        inv.add(InventoryFile(b"childid", u'ch\xefld', b"dirid"))
1335
1338
        inv.get_entry(b"childid").revision = b"filerev"
1336
1339
        inv.get_entry(b"childid").text_sha1 = b"ffff"
1365
1368
        inv.get_entry(b"fileid").text_sha1 = b"ffff"
1366
1369
        inv.get_entry(b"fileid").text_size = 1
1367
1370
        inv.add(InventoryDirectory(b"dirid", "dir", root_id))
 
1371
        inv.get_entry(b"dirid").revision = b"dirrev"
1368
1372
        inv.add(InventoryFile(b"childid", "child", b"dirid"))
1369
1373
        inv.get_entry(b"childid").revision = b"filerev"
1370
1374
        inv.get_entry(b"childid").executable = False
1383
1387
        self.assertTrue(new_inv._fully_cached)
1384
1388
        ie_root = new_inv._fileid_to_entry_cache[root_id]
1385
1389
        self.assertEqual(['dir', 'file'], sorted(ie_root._children.keys()))
1386
 
        ie_dir = new_inv._fileid_to_entry_cache['dirid']
 
1390
        ie_dir = new_inv._fileid_to_entry_cache[b'dirid']
1387
1391
        self.assertEqual(['child'], sorted(ie_dir._children.keys()))
1388
1392
 
1389
1393
    def test__preload_handles_partially_evaluated_inventory(self):
1405
1409
 
1406
1410
    def test_filter_change_in_renamed_subfolder(self):
1407
1411
        inv = Inventory(b'tree-root')
 
1412
        inv.root.revision = b'rootrev'
1408
1413
        src_ie = inv.add_path('src', 'directory', b'src-id')
1409
 
        inv.add_path('src/sub/', 'directory', b'sub-id')
 
1414
        src_ie.revision = b'srcrev'
 
1415
        sub_ie = inv.add_path('src/sub/', 'directory', b'sub-id')
 
1416
        sub_ie.revision = b'subrev'
1410
1417
        a_ie = inv.add_path('src/sub/a', 'file', b'a-id')
 
1418
        a_ie.revision = b'filerev'
1411
1419
        a_ie.text_sha1 = osutils.sha_string(b'content\n')
1412
1420
        a_ie.text_size = len(b'content\n')
1413
1421
        chk_bytes = self.get_chk_bytes()
1431
1439
        trans = self.get_transport('')
1432
1440
        return factory(trans)
1433
1441
 
1434
 
    def make_dir(self, inv, name, parent_id):
1435
 
        inv.add(inv.make_entry('directory', name, parent_id, name.encode('utf-8') + b'-id'))
 
1442
    def make_dir(self, inv, name, parent_id, revision):
 
1443
        ie = inv.make_entry('directory', name, parent_id, name.encode('utf-8') + b'-id')
 
1444
        ie.revision = revision
 
1445
        inv.add(ie)
1436
1446
 
1437
 
    def make_file(self, inv, name, parent_id, content=b'content\n'):
 
1447
    def make_file(self, inv, name, parent_id, revision, content=b'content\n'):
1438
1448
        ie = inv.make_entry('file', name, parent_id, name.encode('utf-8') + b'-id')
1439
1449
        ie.text_sha1 = osutils.sha_string(content)
1440
1450
        ie.text_size = len(content)
 
1451
        ie.revision = revision
1441
1452
        inv.add(ie)
1442
1453
 
1443
1454
    def make_simple_inventory(self):
1453
1464
        # dir2/             dir2-id
1454
1465
        #   sub2-file1      sub2-file1-id
1455
1466
        # top               top-id
1456
 
        self.make_dir(inv, 'dir1', b'TREE_ROOT')
1457
 
        self.make_dir(inv, 'dir2', b'TREE_ROOT')
1458
 
        self.make_dir(inv, 'sub-dir1', b'dir1-id')
1459
 
        self.make_file(inv, 'top', b'TREE_ROOT')
1460
 
        self.make_file(inv, 'sub-file1', b'dir1-id')
1461
 
        self.make_file(inv, 'sub-file2', b'dir1-id')
1462
 
        self.make_file(inv, 'subsub-file1', b'sub-dir1-id')
1463
 
        self.make_file(inv, 'sub2-file1', b'dir2-id')
 
1467
        self.make_dir(inv, 'dir1', b'TREE_ROOT', b'dirrev')
 
1468
        self.make_dir(inv, 'dir2', b'TREE_ROOT', b'dirrev')
 
1469
        self.make_dir(inv, 'sub-dir1', b'dir1-id', b'dirrev')
 
1470
        self.make_file(inv, 'top', b'TREE_ROOT', b'filerev')
 
1471
        self.make_file(inv, 'sub-file1', b'dir1-id', b'filerev')
 
1472
        self.make_file(inv, 'sub-file2', b'dir1-id', b'filerev')
 
1473
        self.make_file(inv, 'subsub-file1', b'sub-dir1-id', b'filerev')
 
1474
        self.make_file(inv, 'sub2-file1', b'dir2-id', b'filerev')
1464
1475
        chk_bytes = self.get_chk_bytes()
1465
1476
        #  use a small maximum_size to force internal paging structures
1466
1477
        chk_inv = CHKInventory.from_inventory(chk_bytes, inv,
1482
1493
        for entry in entries:
1483
1494
            s = expected_children.setdefault(entry.parent_id, [])
1484
1495
            s.append(entry.file_id)
1485
 
        val_children = dict((k, sorted(v)) for k, v
1486
 
                            in val_children.items())
1487
 
        expected_children = dict((k, sorted(v)) for k, v
1488
 
                            in expected_children.items())
 
1496
        val_children = {
 
1497
            k: sorted(v) for k, v in val_children.items()}
 
1498
        expected_children = {
 
1499
            k: sorted(v) for k, v in expected_children.items()}
1489
1500
        self.assertEqual(expected_children, val_children)
1490
1501
 
1491
1502
    def test_make_simple_inventory(self):
1521
1532
 
1522
1533
    def test_single_file(self):
1523
1534
        inv = self.make_simple_inventory()
1524
 
        self.assertExpand([b'TREE_ROOT', b'top-id'], inv, ['top-id'])
 
1535
        self.assertExpand([b'TREE_ROOT', b'top-id'], inv, [b'top-id'])
1525
1536
 
1526
1537
    def test_get_all_parents(self):
1527
1538
        inv = self.make_simple_inventory()
1543
1554
 
1544
1555
    def test_top_level_file(self):
1545
1556
        inv = self.make_simple_inventory()
1546
 
        self.assertExpand([b'TREE_ROOT', b'top-id'], inv, ['top-id'])
 
1557
        self.assertExpand([b'TREE_ROOT', b'top-id'], inv, [b'top-id'])
1547
1558
 
1548
1559
    def test_subsub_file(self):
1549
1560
        inv = self.make_simple_inventory()
1553
1564
    def test_sub_and_root(self):
1554
1565
        inv = self.make_simple_inventory()
1555
1566
        self.assertExpand([b'TREE_ROOT', b'dir1-id', b'sub-dir1-id', b'top-id',
1556
 
                           b'subsub-file1-id'], inv, ['top-id', b'subsub-file1-id'])
 
1567
                           b'subsub-file1-id'], inv, [b'top-id', b'subsub-file1-id'])
1557
1568
 
1558
1569
 
1559
1570
class TestMutableInventoryFromTree(TestCaseWithTransport):