802 |
802 |
self.assertEqual(container, ["Start", "Hello", "World", "End"])
|
803 |
803 |
self.assertEqual(chgdesc, [])
|
804 |
804 |
|
|
805 |
mods = cmdlib.PrepareContainerMods([
|
|
806 |
(constants.DDM_ADD, 0, "zero"),
|
|
807 |
(constants.DDM_ADD, 3, "Added"),
|
|
808 |
(constants.DDM_ADD, 5, "four"),
|
|
809 |
(constants.DDM_ADD, 7, "xyz"),
|
|
810 |
], None)
|
|
811 |
cmdlib.ApplyContainerMods("test", container, chgdesc, mods,
|
|
812 |
None, None, None)
|
|
813 |
self.assertEqual(container,
|
|
814 |
["zero", "Start", "Hello", "Added", "World", "four",
|
|
815 |
"End", "xyz"])
|
|
816 |
self.assertEqual(chgdesc, [])
|
|
817 |
|
|
818 |
for idx in [-2, len(container) + 1]:
|
|
819 |
mods = cmdlib.PrepareContainerMods([
|
|
820 |
(constants.DDM_ADD, idx, "error"),
|
|
821 |
], None)
|
|
822 |
self.assertRaises(IndexError, cmdlib.ApplyContainerMods,
|
|
823 |
"test", container, None, mods, None, None, None)
|
|
824 |
|
805 |
825 |
def testRemoveError(self):
|
806 |
826 |
for idx in [0, 1, 2, 100, -1, -4]:
|
807 |
827 |
mods = cmdlib.PrepareContainerMods([
|
... | ... | |
817 |
837 |
"test", [""], None, mods, None, None, None)
|
818 |
838 |
|
819 |
839 |
def testAddError(self):
|
820 |
|
for idx in range(-100, -1):
|
|
840 |
for idx in range(-100, -1) + [100]:
|
821 |
841 |
mods = cmdlib.PrepareContainerMods([
|
822 |
842 |
(constants.DDM_ADD, idx, None),
|
823 |
843 |
], None)
|
... | ... | |
839 |
859 |
("test/2", "remove"),
|
840 |
860 |
])
|
841 |
861 |
|
|
862 |
def testModify(self):
|
|
863 |
container = ["item 1", "item 2"]
|
|
864 |
mods = cmdlib.PrepareContainerMods([
|
|
865 |
(constants.DDM_MODIFY, -1, "a"),
|
|
866 |
(constants.DDM_MODIFY, 0, "b"),
|
|
867 |
(constants.DDM_MODIFY, 1, "c"),
|
|
868 |
], None)
|
|
869 |
chgdesc = []
|
|
870 |
cmdlib.ApplyContainerMods("test", container, chgdesc, mods,
|
|
871 |
None, None, None)
|
|
872 |
self.assertEqual(container, ["item 1", "item 2"])
|
|
873 |
self.assertEqual(chgdesc, [])
|
|
874 |
|
|
875 |
for idx in [-2, len(container) + 1]:
|
|
876 |
mods = cmdlib.PrepareContainerMods([
|
|
877 |
(constants.DDM_MODIFY, idx, "error"),
|
|
878 |
], None)
|
|
879 |
self.assertRaises(IndexError, cmdlib.ApplyContainerMods,
|
|
880 |
"test", container, None, mods, None, None, None)
|
|
881 |
|
842 |
882 |
class _PrivateData:
|
843 |
883 |
def __init__(self):
|
844 |
884 |
self.data = None
|
... | ... | |
877 |
917 |
cmdlib.ApplyContainerMods("test", container, chgdesc, mods,
|
878 |
918 |
self._CreateTestFn, self._ModifyTestFn, self._RemoveTestFn)
|
879 |
919 |
self.assertEqual(container, [
|
880 |
|
(100, "Start"),
|
881 |
|
(200, "More"),
|
882 |
|
(0, "Hello"),
|
|
920 |
(000, "Start"),
|
|
921 |
(100, "More"),
|
|
922 |
(000, "Hello"),
|
883 |
923 |
])
|
884 |
924 |
self.assertEqual(chgdesc, [
|
885 |
925 |
("test/0", "0x0"),
|
886 |
926 |
("test/1", "0x1"),
|
887 |
|
("test/1", "0x1"),
|
|
927 |
("test/0", "0x0"),
|
888 |
928 |
("test/3", "0x3"),
|
889 |
929 |
("test/2", "remove"),
|
890 |
930 |
("test/2", "modify foobar"),
|
891 |
931 |
("test/2", "remove"),
|
892 |
|
("test/2", "0x2")
|
|
932 |
("test/1", "0x1")
|
893 |
933 |
])
|
894 |
934 |
self.assertTrue(compat.all(op == private.data[0]
|
895 |
935 |
for (op, _, _, private) in mods))
|
896 |
936 |
self.assertEqual([private.data for (op, _, _, private) in mods], [
|
897 |
937 |
("add", 0, "Hello"),
|
898 |
938 |
("add", 1, "World"),
|
899 |
|
("add", 1, "Start"),
|
|
939 |
("add", 0, "Start"),
|
900 |
940 |
("add", 3, "End"),
|
901 |
941 |
("remove", 2, (100, "World")),
|
902 |
942 |
("modify", 2, "foobar"),
|
903 |
943 |
("remove", 2, (300, "End")),
|
904 |
|
("add", 2, "More"),
|
|
944 |
("add", 1, "More"),
|
905 |
945 |
])
|
906 |
946 |
|
907 |
947 |
|