560
560
"""Open the versioned file from disk again."""
561
561
raise NotImplementedError(self.reopen_file)
563
def test_iter_parents(self):
564
"""iter_parents returns the parents for many nodes."""
568
f.add_lines('r0', [], ['a\n', 'b\n'])
570
f.add_lines('r1', ['r0'], ['a\n', 'b\n'])
572
f.add_lines('r2', ['r1', 'r0'], ['a\n', 'b\n'])
574
# cases: each sample data individually:
575
self.assertEqual(set([('r0', ())]),
576
set(f.iter_parents(['r0'])))
577
self.assertEqual(set([('r1', ('r0', ))]),
578
set(f.iter_parents(['r1'])))
579
self.assertEqual(set([('r2', ('r1', 'r0'))]),
580
set(f.iter_parents(['r2'])))
581
# no nodes returned for a missing node
582
self.assertEqual(set(),
583
set(f.iter_parents(['missing'])))
584
# 1 node returned with missing nodes skipped
585
self.assertEqual(set([('r1', ('r0', ))]),
586
set(f.iter_parents(['ghost1', 'r1', 'ghost'])))
588
self.assertEqual(set([('r0', ()), ('r1', ('r0', ))]),
589
set(f.iter_parents(['r0', 'r1'])))
590
# 2 nodes returned, missing skipped
591
self.assertEqual(set([('r0', ()), ('r1', ('r0', ))]),
592
set(f.iter_parents(['a', 'r0', 'b', 'r1', 'c'])))
563
594
def test_iter_lines_added_or_present_in_versions(self):
564
595
# test that we get at least an equalset of the lines added by
565
596
# versions in the weave
690
721
# - these are ghost unaware and must not be reflect ghosts
691
722
self.assertEqual(['notbxbfse'], vf.get_ancestry('notbxbfse'))
692
723
self.assertEqual([], vf.get_parents('notbxbfse'))
693
self.assertEqual({'notbxbfse':[]}, vf.get_graph())
724
self.assertEqual({'notbxbfse':()}, vf.get_graph())
694
725
self.assertFalse(self.callDeprecated([osutils._revision_id_warning],
695
726
vf.has_version, parent_id_unicode))
696
727
self.assertFalse(vf.has_version(parent_id_utf8))
707
738
vf.add_lines, parent_id_unicode, [], [])
708
739
self.assertEqual([parent_id_utf8, 'notbxbfse'], vf.get_ancestry(['notbxbfse']))
709
740
self.assertEqual([parent_id_utf8], vf.get_parents('notbxbfse'))
710
self.assertEqual({parent_id_utf8:[],
711
'notbxbfse':[parent_id_utf8],
741
self.assertEqual({parent_id_utf8:(),
742
'notbxbfse':(parent_id_utf8, ),
714
745
self.assertTrue(self.callDeprecated([osutils._revision_id_warning],