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"]
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()
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()
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])
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
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"
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