[lang-ref] ( insert_item_by_position ) ( python )
def test_insert_item_by_position():
# items.insert(i, v)
items = ['A', 'B', 'D', 'E']
expected = ['A', 'B', 'C', 'D', 'E']
items.insert(2, 'C')
assert items == expected
def test_insert_item_by_position_alternative1():
# items[i:i] = [v]
items = ['A', 'B', 'D', 'E']
expected = ['A', 'B', 'C', 'D', 'E']
items[2:2] = ['C']
assert items == expected
def test_insert_item_by_position_alternative2():
# items[i:i] = v is wrong way
items = [10, 20, 40, 50]
expected = [10, 20, 30, 40, 50]
with pytest.raises(TypeError):
items[2:2] = 30
items = ['A', 'B', 'D', 'E']
expected = ['A', 'B', 'C', 'D', 'E']
items[2:2] = 'XYZ' # this doesn't throw, but result is not what we want
assert items != expected
assert items == ['A', 'B', 'X', 'Y', 'Z', 'D', 'E']