Ejemplo n.º 1
0
def test_serialization_params(
    allowed_intents,
    target_dialogue_state,
    time_zone,
    timestamp,
    language,
    locale,
    dynamic_resource,
):
    params = Params()
    params.allowed_intents = allowed_intents
    params.target_dialogue_state = target_dialogue_state
    params.time_zone = time_zone
    params.timestamp = timestamp
    params.language = language
    params.locale = locale
    params.dynamic_resource = Map(dynamic_resource)
    dict_result = params.to_dict()
    assert allowed_intents == dict_result["allowed_intents"]
    assert target_dialogue_state == dict_result["target_dialogue_state"]
    assert time_zone == dict_result["time_zone"]
    assert timestamp == dict_result["timestamp"]
    assert language == dict_result["language"]
    assert locale == dict_result["locale"]
    assert dynamic_resource == dict_result["dynamic_resource"]
Ejemplo n.º 2
0
def test_convo_params_are_cleared(kwik_e_mart_nlp, kwik_e_mart_app_path):
    """Tests that the params are cleared in one trip from app to mm."""
    convo = Conversation(nlp=kwik_e_mart_nlp, app_path=kwik_e_mart_app_path)
    convo.params = Params(allowed_intents=['store_info.find_nearest_store'],
                          target_dialogue_state='greeting')
    convo.say('close door')
    assert convo.params == Params()
Ejemplo n.º 3
0
async def test_convo_params_are_cleared(async_kwik_e_mart_app, kwik_e_mart_app_path):
    """Tests that the params are cleared in one trip from app to mm."""
    convo = Conversation(app=async_kwik_e_mart_app, app_path=kwik_e_mart_app_path)
    convo.params = Params(
        allowed_intents=["store_info.find_nearest_store"],
        target_dialogue_state="welcome",
    )
    await convo.say("close door")
    assert convo.params == Params()
Ejemplo n.º 4
0
def test_freeze_params():
    params = freeze_params({"target_dialogue_state": "some-state"})
    assert params.__class__ == FrozenParams

    input_params = Params()
    input_params.target_dialogue_state = "some-state-2"
    params = freeze_params(input_params)
    assert params.__class__ == FrozenParams

    params = freeze_params(params)
    assert params.__class__ == FrozenParams

    with pytest.raises(TypeError):
        freeze_params([1, 2, 3])
Ejemplo n.º 5
0
def test_convo_language_and_locales(mocker, kwik_e_mart_nlp,
                                    kwik_e_mart_app_path, language, locale,
                                    expected_ser_call):
    """Tests that the params are cleared in one trip from app to mm."""
    convo = Conversation(nlp=kwik_e_mart_nlp, app_path=kwik_e_mart_app_path)
    convo.params = Params(language=language, locale=locale)
    mock1 = mocker.patch.object(DucklingRecognizer,
                                "get_response",
                                return_value=({}, 400))
    convo.say("set alarm for 4pm tomorrow")
    mock1.call_args_list[0][0][0].pop("text")
    assert mock1.call_args_list[0][0][0] == expected_ser_call
Ejemplo n.º 6
0
def test_immutability_of_sample_request_and_params():
    """Test the immutability of the sample_request and params objects"""
    with pytest.raises(FrozenInstanceError):
        params = FrozenParams()
        params.allowed_intents = []

    with pytest.raises(TypeError):
        params = FrozenParams()
        params.dynamic_resource["a"] = "b"

    with pytest.raises(FrozenInstanceError):
        request = Request()
        request.params = Params()

    with pytest.raises(TypeError):
        request = Request()
        request.frame["a"] = "b"
Ejemplo n.º 7
0
def test_convo_language_and_locales(mocker, kwik_e_mart_nlp,
                                    kwik_e_mart_app_path, language, locale,
                                    expected_ser_call):
    """Tests that the params are cleared in one trip from app to mm."""
    convo = Conversation(nlp=kwik_e_mart_nlp, app_path=kwik_e_mart_app_path)
    convo.params = Params(language=language, locale=locale)
    mock1 = mocker.patch.object(DucklingRecognizer,
                                "get_response",
                                return_value=({}, 400))
    try:
        convo.say("set alarm for 4pm tomorrow")
        mock1.call_args_list[0][0][0].pop("text")
        assert mock1.call_args_list[0][0][0] == expected_ser_call
    except ValidationError as error:
        if isinstance(error.messages, dict):
            if language == 'INVALID_LANG_CODE':
                assert 'Invalid language param: invalid_lang_code is not a valid ' \
                       'ISO 639-1 or ISO 639-2 language code.' in str(error.messages)
            elif locale == 'INVALID_LOCALE_CODE':
                assert 'Invalid locale param: invalid_locale_code is not a valid ' \
                       'ISO 639-1 or ISO 639-2 language code.' in str(error.messages)
        else:
            assert error.messages[0] == "Invalid locale_code param: %s is " \
                                        "not a valid locale." % locale