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