def test_serialize_list_with_items(self): item_list = IdList() item1 = Item('id1') item2 = Item('id2') item_list.add(item1) item_list.add(item2) assert item_list.serialize() == [item1.serialize(), item2.serialize()]
def test_get_present_item(self): item_list = IdList() item1 = Item('id1') item2 = Item('id2') item_list.add(item1) item_list.add(item2) assert item_list.get('id1') is item1 assert item_list.get('id2') is item2
def test_adding_multiple_items_preserves_order(self): item_list = IdList() item1 = Item('id1') item2 = Item('id2') item_list.add(item1) item_list.add(item2) assert len(item_list) == 2 assert item_list.items[0] is item1 assert item_list.items[1] is item2
def test_replacing_item_preserves_order(self): item_list = IdList() item1 = Item('id1') item2 = Item('id2') item3 = Item('id3') item4 = Item('id4') item_list.add(item1) item_list.add(item2) item_list.add(item3) item_list.replace('id2', item4) assert item_list.items == [item1, item4, item3]
def test_delete_item(self): item_list = IdList() item_list.add(Item('id1')) item_list.remove('id1') assert len(item_list) == 0
def test_get_index_of_item(self): item_list = IdList() item_list.add(Item('id1')) item_list.add(Item('id2')) item_list.add(Item('id3')) assert item_list.index('id2') == 1
def test_contains_returns_false_for_present_item(self): item_list = IdList() item_list.add(Item('id1')) item_list.add(Item('id2')) assert 'id1' in item_list assert 'id2' in item_list
def test_add_item_that_already_exists_raises_exception(self): item_list = IdList() item_list.add(Item('id1')) item = Item('id1') with pytest.raises(KeyError): item_list.add(item)
def test_add_item_to_empty_list(self): item_list = IdList() item = Item('id1') item_list.add(item) assert len(item_list) == 1 assert item_list.items[0] is item