Пример #1
0
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
Пример #2
0
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