1455
1464
((False, [False, False]), False, False)),
1467
def test_interesting_files(self):
1468
# Two files modified, but we should filter one of them
1469
builder = self.get_builder()
1470
builder.build_snapshot('A-id', None,
1471
[('add', (u'', 'a-root-id', 'directory', None)),
1472
('add', (u'a', 'a-id', 'file', 'content\n')),
1473
('add', (u'b', 'b-id', 'file', 'content\n'))])
1474
builder.build_snapshot('B-id', ['A-id'], [])
1475
builder.build_snapshot('C-id', ['A-id'], [])
1476
builder.build_snapshot('E-id', ['C-id', 'B-id'],
1477
[('modify', ('a-id', 'new-content\n')),
1478
('modify', ('b-id', 'new-content\n'))])
1479
builder.build_snapshot('D-id', ['B-id', 'C-id'], [])
1480
merge_obj = self.make_merge_obj(builder, 'E-id',
1481
interesting_files=['b'])
1482
entries = list(merge_obj._entries_lca())
1483
root_id = 'a-root-id'
1484
self.assertEqual([('b-id', True,
1485
((root_id, [root_id, root_id]), root_id, root_id),
1486
((u'b', [u'b', u'b']), u'b', u'b'),
1487
((False, [False, False]), False, False)),
1490
def test_interesting_file_in_this(self):
1491
# This renamed the file, but it should still match the entry in other
1492
builder = self.get_builder()
1493
builder.build_snapshot('A-id', None,
1494
[('add', (u'', 'a-root-id', 'directory', None)),
1495
('add', (u'a', 'a-id', 'file', 'content\n')),
1496
('add', (u'b', 'b-id', 'file', 'content\n'))])
1497
builder.build_snapshot('B-id', ['A-id'], [])
1498
builder.build_snapshot('C-id', ['A-id'], [])
1499
builder.build_snapshot('E-id', ['C-id', 'B-id'],
1500
[('modify', ('a-id', 'new-content\n')),
1501
('modify', ('b-id', 'new-content\n'))])
1502
builder.build_snapshot('D-id', ['B-id', 'C-id'],
1503
[('rename', ('b', 'c'))])
1504
merge_obj = self.make_merge_obj(builder, 'E-id',
1505
interesting_files=['c'])
1506
entries = list(merge_obj._entries_lca())
1507
root_id = 'a-root-id'
1508
self.assertEqual([('b-id', True,
1509
((root_id, [root_id, root_id]), root_id, root_id),
1510
((u'b', [u'b', u'b']), u'b', u'c'),
1511
((False, [False, False]), False, False)),
1514
def test_interesting_file_in_base(self):
1515
# This renamed the file, but it should still match the entry in BASE
1516
builder = self.get_builder()
1517
builder.build_snapshot('A-id', None,
1518
[('add', (u'', 'a-root-id', 'directory', None)),
1519
('add', (u'a', 'a-id', 'file', 'content\n')),
1520
('add', (u'c', 'c-id', 'file', 'content\n'))])
1521
builder.build_snapshot('B-id', ['A-id'],
1522
[('rename', ('c', 'b'))])
1523
builder.build_snapshot('C-id', ['A-id'],
1524
[('rename', ('c', 'b'))])
1525
builder.build_snapshot('E-id', ['C-id', 'B-id'],
1526
[('modify', ('a-id', 'new-content\n')),
1527
('modify', ('c-id', 'new-content\n'))])
1528
builder.build_snapshot('D-id', ['B-id', 'C-id'], [])
1529
merge_obj = self.make_merge_obj(builder, 'E-id',
1530
interesting_files=['c'])
1531
entries = list(merge_obj._entries_lca())
1532
root_id = 'a-root-id'
1533
self.assertEqual([('c-id', True,
1534
((root_id, [root_id, root_id]), root_id, root_id),
1535
((u'c', [u'b', u'b']), u'b', u'b'),
1536
((False, [False, False]), False, False)),
1539
def test_interesting_file_in_lca(self):
1540
# This renamed the file, but it should still match the entry in LCA
1541
builder = self.get_builder()
1542
builder.build_snapshot('A-id', None,
1543
[('add', (u'', 'a-root-id', 'directory', None)),
1544
('add', (u'a', 'a-id', 'file', 'content\n')),
1545
('add', (u'b', 'b-id', 'file', 'content\n'))])
1546
builder.build_snapshot('B-id', ['A-id'],
1547
[('rename', ('b', 'c'))])
1548
builder.build_snapshot('C-id', ['A-id'], [])
1549
builder.build_snapshot('E-id', ['C-id', 'B-id'],
1550
[('modify', ('a-id', 'new-content\n')),
1551
('modify', ('b-id', 'new-content\n'))])
1552
builder.build_snapshot('D-id', ['B-id', 'C-id'],
1553
[('rename', ('c', 'b'))])
1554
merge_obj = self.make_merge_obj(builder, 'E-id',
1555
interesting_files=['c'])
1556
entries = list(merge_obj._entries_lca())
1557
root_id = 'a-root-id'
1558
self.assertEqual([('b-id', True,
1559
((root_id, [root_id, root_id]), root_id, root_id),
1560
((u'b', [u'c', u'b']), u'b', u'b'),
1561
((False, [False, False]), False, False)),
1564
def test_interesting_ids(self):
1565
# Two files modified, but we should filter one of them
1566
builder = self.get_builder()
1567
builder.build_snapshot('A-id', None,
1568
[('add', (u'', 'a-root-id', 'directory', None)),
1569
('add', (u'a', 'a-id', 'file', 'content\n')),
1570
('add', (u'b', 'b-id', 'file', 'content\n'))])
1571
builder.build_snapshot('B-id', ['A-id'], [])
1572
builder.build_snapshot('C-id', ['A-id'], [])
1573
builder.build_snapshot('E-id', ['C-id', 'B-id'],
1574
[('modify', ('a-id', 'new-content\n')),
1575
('modify', ('b-id', 'new-content\n'))])
1576
builder.build_snapshot('D-id', ['B-id', 'C-id'], [])
1577
merge_obj = self.make_merge_obj(builder, 'E-id',
1578
interesting_ids=['b-id'])
1579
entries = list(merge_obj._entries_lca())
1580
root_id = 'a-root-id'
1581
self.assertEqual([('b-id', True,
1582
((root_id, [root_id, root_id]), root_id, root_id),
1583
((u'b', [u'b', u'b']), u'b', u'b'),
1584
((False, [False, False]), False, False)),
1459
1589
class TestMergerEntriesLCAOnDisk(tests.TestCaseWithTransport):