def test_delitem(self): model = PyListModel([1, 2, 3, 4]) model._other_data = list("abcd") del model[1] self.assertSequenceEqual(model, [1, 3, 4]) self.assertSequenceEqual(model._other_data, "acd") model = PyListModel([1, 2, 3, 4]) model._other_data = list("abcd") del model[1:3] self.assertSequenceEqual(model, [1, 4]) self.assertSequenceEqual(model._other_data, "ad") model = PyListModel([1, 2, 3, 4]) model._other_data = list("abcd") del model[:] self.assertSequenceEqual(model, []) self.assertEqual(len(model._other_data), 0) model = PyListModel([1, 2, 3, 4]) with self.assertRaises(IndexError): # non unit strides currently not supported del model[0:-1:2] self.assertEqual(len(model), len(model._other_data))
def test_insert(self): model = PyListModel() model.insert(0, 1) self.assertSequenceEqual(model, [1]) self.assertEqual(len(model._other_data), 1) model._other_data = ["a"] model.insert(0, 2) self.assertSequenceEqual(model, [2, 1]) self.assertEqual(model._other_data[1], "a") self.assertNotEqual(model._other_data[0], "a") model._other_data[0] = "b" model.insert(1, 3) self.assertSequenceEqual(model, [2, 3, 1]) self.assertEqual(model._other_data[0], "b") self.assertEqual(model._other_data[2], "a") self.assertNotEqual(model._other_data[1], "b") self.assertNotEqual(model._other_data[1], "a") model._other_data[1] = "c" model.insert(3, 4) self.assertSequenceEqual(model, [2, 3, 1, 4]) self.assertSequenceEqual(model._other_data[:3], ["b", "c", "a"]) model._other_data[3] = "d" model.insert(-1, 5) self.assertSequenceEqual(model, [2, 3, 1, 5, 4]) self.assertSequenceEqual(model._other_data[:3], ["b", "c", "a"]) self.assertEqual(model._other_data[4], "d") self.assertEqual(len(model), len(model._other_data))
def test_sort(self): model = PyListModel([3, 1, 4, 2]) model._other_data = list("abcd") model.sort() self.assertSequenceEqual(model, [1, 2, 3, 4]) self.assertSequenceEqual(model._other_data, "bdac")
def test_reverse(self): model = PyListModel([1, 2, 3, 4]) model._other_data = list("abcd") model.reverse() self.assertSequenceEqual(model, [4, 3, 2, 1]) self.assertSequenceEqual(model._other_data, "dcba")
def test_pop(self): model = PyListModel([1, 2, 3, 2, 4]) model._other_data = list("abcde") model.pop(1) self.assertSequenceEqual(model, [1, 3, 2, 4]) self.assertSequenceEqual(model._other_data, "acde")