873
873
state = dirstate.DirState.initialize('dirstate')
875
875
# check precondition to be sure the state does change appropriately.
877
[(('', '', 'TREE_ROOT'), [('d', '', 0, False,
878
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')])],
879
list(state._iter_entries()))
880
state.set_path_id('', 'foobarbaz')
882
(('', '', 'foobarbaz'), [('d', '', 0, False,
883
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')])]
876
root_entry = (('', '', 'TREE_ROOT'), [('d', '', 0, False, 'x'*32)])
877
self.assertEqual([root_entry], list(state._iter_entries()))
878
self.assertEqual(root_entry, state._get_entry(0, path_utf8=''))
879
self.assertEqual(root_entry,
880
state._get_entry(0, fileid_utf8='TREE_ROOT'))
881
self.assertEqual((None, None),
882
state._get_entry(0, fileid_utf8='second-root-id'))
883
state.set_path_id('', 'second-root-id')
884
new_root_entry = (('', '', 'second-root-id'),
885
[('d', '', 0, False, 'x'*32)])
886
expected_rows = [new_root_entry]
884
887
self.assertEqual(expected_rows, list(state._iter_entries()))
888
self.assertEqual(new_root_entry, state._get_entry(0, path_utf8=''))
889
self.assertEqual(new_root_entry,
890
state._get_entry(0, fileid_utf8='second-root-id'))
891
self.assertEqual((None, None),
892
state._get_entry(0, fileid_utf8='TREE_ROOT'))
885
893
# should work across save too
905
913
state._validate()
907
915
state.set_parent_trees([('parent-revid', rt)], ghosts=[])
908
state.set_path_id('', 'foobarbaz')
916
root_entry = (('', '', 'TREE_ROOT'),
917
[('d', '', 0, False, 'x'*32),
918
('d', '', 0, False, 'parent-revid')])
919
self.assertEqual(root_entry, state._get_entry(0, path_utf8=''))
920
self.assertEqual(root_entry,
921
state._get_entry(0, fileid_utf8='TREE_ROOT'))
922
self.assertEqual((None, None),
923
state._get_entry(0, fileid_utf8='Asecond-root-id'))
924
state.set_path_id('', 'Asecond-root-id')
909
925
state._validate()
910
926
# now see that it is what we expected
912
(('', '', 'TREE_ROOT'),
913
[('a', '', 0, False, ''),
914
('d', '', 0, False, 'parent-revid'),
916
(('', '', 'foobarbaz'),
917
[('d', '', 0, False, ''),
918
('a', '', 0, False, ''),
927
old_root_entry = (('', '', 'TREE_ROOT'),
928
[('a', '', 0, False, ''),
929
('d', '', 0, False, 'parent-revid')])
930
new_root_entry = (('', '', 'Asecond-root-id'),
931
[('d', '', 0, False, ''),
932
('a', '', 0, False, '')])
933
expected_rows = [new_root_entry, old_root_entry]
921
934
state._validate()
922
935
self.assertEqual(expected_rows, list(state._iter_entries()))
936
self.assertEqual(new_root_entry, state._get_entry(0, path_utf8=''))
937
self.assertEqual(old_root_entry, state._get_entry(1, path_utf8=''))
938
self.assertEqual((None, None),
939
state._get_entry(0, fileid_utf8='TREE_ROOT'))
940
self.assertEqual(old_root_entry,
941
state._get_entry(1, fileid_utf8='TREE_ROOT'))
942
self.assertEqual(new_root_entry,
943
state._get_entry(0, fileid_utf8='Asecond-root-id'))
944
self.assertEqual((None, None),
945
state._get_entry(1, fileid_utf8='Asecond-root-id'))
923
946
# should work across save too