Revision 35554b4f test/ganeti.cmdlib_unittest.py
b/test/ganeti.cmdlib_unittest.py | ||
---|---|---|
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 |
|
Also available in: Unified diff