def test_list_source_count_in_transform(mock_renderer): placeholder_list = [ { "placeholder": "number_of_people", "transforms": [ { "transform": "add", "arguments": { "lhs": { "source": "list", "identifier": "people", "selector": "count", }, "rhs": {"value": 1}, }, } ], } ] list_store = ListStore() list_store.add_list_item("people") parser = PlaceholderParser( language="en", answer_store=AnswerStore(), list_store=list_store, metadata={}, response_metadata={}, schema=QuestionnaireSchema({}), renderer=mock_renderer, ) placeholders = parser(placeholder_list) assert placeholders["number_of_people"] == 2
def test_list_source_count_in_transform(): placeholder_list = [{ "placeholder": "number_of_people", "transforms": [{ "transform": "add", "arguments": { "lhs": { "source": "list", "identifier": "people" }, "rhs": { "value": 1 }, }, }], }] list_store = ListStore() list_store.add_list_item("people") parser = PlaceholderParser(language="en", list_store=list_store) placeholders = parser(placeholder_list) assert placeholders["number_of_people"] == 2
def test_delete_list_item_id_does_not_raise(): store = ListStore() store.add_list_item("people") try: store.delete_list_item("people", "123456") except ValueError: # Not necessary, but keeps it explicit. pytest.fail("Deleting a non-existent list item raised an error")
def test_list_item_positions_update_after_deletion(): store = ListStore() first_id = store.add_list_item("people") second_id = store.add_list_item("people") assert store.list_item_position("people", first_id) == 1 store.delete_list_item("people", first_id) assert store.list_item_position("people", second_id) == 1
def test_list_item_position(): store = ListStore() first_id = store.add_list_item("people") second_id = store.add_list_item("people") assert store.list_item_position("people", first_id) == 1 assert store.list_item_position("people", second_id) == 2 with pytest.raises(ValueError): assert store.list_item_position("people", "not-an-id")
def test_list_serialisation(): store = ListStore() first_id = store.add_list_item("people") second_id = store.add_list_item("people", primary_person=True) additional_list_id = store.add_list_item("pets") serialized = store.serialize() assert serialized == [ {"name": "people", "primary_person": second_id, "items": [second_id, first_id]}, {"name": "pets", "items": [additional_list_id]}, ]
def test_list_source_count(): placeholder_list = [ { "placeholder": "number_of_people", "value": {"source": "list", "identifier": "people"}, } ] list_store = ListStore() list_store.add_list_item("people") list_store.add_list_item("people") parser = PlaceholderParser(language="en", list_store=list_store) placeholders = parser(placeholder_list) assert placeholders["number_of_people"] == 2
def test_delete_list_item_id(): store = ListStore() person = store.add_list_item("people") store.delete_list_item("people", person) assert not store._lists # pylint: disable=protected-access