def test_domain_action_instantiation(): domain = Domain( intents=[{ "chitchat": { "is_retrieval_intent": True } }], entities=[], slots=[], templates={}, action_names=["my_module.ActionTest", "utter_test", "utter_chitchat"], forms={}, ) instantiated_actions = [ action.action_for_name(action_name, domain, None) for action_name in domain.action_names ] assert len(instantiated_actions) == 14 assert instantiated_actions[0].name() == ACTION_LISTEN_NAME assert instantiated_actions[1].name() == ACTION_RESTART_NAME assert instantiated_actions[2].name() == ACTION_SESSION_START_NAME assert instantiated_actions[3].name() == ACTION_DEFAULT_FALLBACK_NAME assert instantiated_actions[4].name() == ACTION_DEACTIVATE_LOOP_NAME assert instantiated_actions[5].name() == ACTION_REVERT_FALLBACK_EVENTS_NAME assert instantiated_actions[6].name( ) == ACTION_DEFAULT_ASK_AFFIRMATION_NAME assert instantiated_actions[7].name() == ACTION_DEFAULT_ASK_REPHRASE_NAME assert instantiated_actions[8].name() == ACTION_TWO_STAGE_FALLBACK_NAME assert instantiated_actions[9].name() == ACTION_BACK_NAME assert instantiated_actions[10].name() == RULE_SNIPPET_ACTION_NAME assert instantiated_actions[11].name() == "my_module.ActionTest" assert instantiated_actions[12].name() == "utter_test" assert instantiated_actions[13].name() == "utter_chitchat"
def test_get_form_action_if_not_in_forms(): form_action_name = "my_business_logic" domain = Domain.from_yaml(""" actions: - my_action """) with pytest.raises(ActionNotFoundException): assert not action.action_for_name(form_action_name, domain, None)
def test_get_form_action_without_slot_mapping(): form_action_name = "my_business_logic" domain = Domain.from_yaml(f""" actions: - my_action forms: - {form_action_name} """) actual = action.action_for_name(form_action_name, domain, None) assert isinstance(actual, RemoteAction)
def test_overridden_form_action(): form_action_name = "my_business_logic" domain = Domain.from_yaml(f""" actions: - my_action - {form_action_name} forms: {form_action_name}: """) actual = action.action_for_name(form_action_name, domain, None) assert isinstance(actual, RemoteAction)
def test_get_form_action_with_rasa_open_source_1_forms(): form_action_name = "my_business_logic" with pytest.warns(FutureWarning): domain = Domain.from_yaml(f""" actions: - my_action forms: - {form_action_name} """) actual = action.action_for_name(form_action_name, domain, None) assert isinstance(actual, RemoteAction)
def test_get_form_action(slot_mapping: Text): form_action_name = "my_business_logic" domain = Domain.from_yaml(f""" actions: - my_action forms: {form_action_name}: {slot_mapping} """) actual = action.action_for_name(form_action_name, domain, None) assert isinstance(actual, FormAction)
def test_get_form_action(): form_action_name = "my_business_logic" domain = Domain.from_yaml(f""" actions: - my_action forms: {form_action_name}: my_slot: - type: from_text """) actual = action.action_for_name(form_action_name, domain, None) assert isinstance(actual, FormAction)