Пример #1
0
def run_core_test(args: argparse.Namespace) -> None:
    """Run core tests."""
    from rasa.test import test_core_models_in_directory, test_core, test_core_models

    stories = cli_utils.get_validated_path(args.stories, "stories",
                                           DEFAULT_DATA_PATH)
    stories = rasa.shared.data.get_test_directory(stories)
    output = args.out or DEFAULT_RESULTS_PATH
    args.errors = not args.no_errors

    rasa.shared.utils.io.create_directory(output)

    if isinstance(args.model, list) and len(args.model) == 1:
        args.model = args.model[0]

    if isinstance(args.model, str):
        model_path = cli_utils.get_validated_path(args.model, "model",
                                                  DEFAULT_MODELS_PATH)

        if args.evaluate_model_directory:
            test_core_models_in_directory(args.model, stories, output)
        else:
            test_core(
                model=model_path,
                stories=stories,
                output=output,
                additional_arguments=vars(args),
            )

    else:
        test_core_models(args.model, stories, output)
Пример #2
0
def test_core(args: argparse.Namespace) -> None:
    from rasa.test import test_core

    endpoints = get_validated_path(
        args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True
    )
    stories = get_validated_path(args.stories, "stories", DEFAULT_DATA_PATH)
    stories = data.get_core_directory(stories)
    output = args.out or DEFAULT_RESULTS_PATH

    if not os.path.exists(output):
        os.makedirs(output)

    if isinstance(args.model, list) and len(args.model) == 1:
        args.model = args.model[0]

    if isinstance(args.model, str):
        model_path = get_validated_path(args.model, "model", DEFAULT_MODELS_PATH)

        test_core(
            model=model_path,
            stories=stories,
            endpoints=endpoints,
            output=output,
            kwargs=vars(args),
        )

    else:
        test_compare_core(args.model, stories, output)
Пример #3
0
def run_core_test(args: argparse.Namespace) -> None:
    """Run core tests."""
    from rasa import data
    from rasa.test import test_core_models_in_directory, test_core, test_core_models

    endpoints = cli_utils.get_validated_path(args.endpoints, "endpoints",
                                             DEFAULT_ENDPOINTS_PATH, True)
    stories = cli_utils.get_validated_path(args.stories, "stories",
                                           DEFAULT_DATA_PATH)
    stories = data.get_core_directory(stories)
    output = args.out or DEFAULT_RESULTS_PATH

    io_utils.create_directory(output)

    if isinstance(args.model, list) and len(args.model) == 1:
        args.model = args.model[0]

    if isinstance(args.model, str):
        model_path = cli_utils.get_validated_path(args.model, "model",
                                                  DEFAULT_MODELS_PATH)

        if args.evaluate_model_directory:
            test_core_models_in_directory(args.model, stories, output)
        else:
            test_core(
                model=model_path,
                stories=stories,
                endpoints=endpoints,
                output=output,
                additional_arguments=vars(args),
            )

    else:
        test_core_models(args.model, stories, output)
Пример #4
0
def test_core(args: argparse.Namespace) -> None:
    from rasa.test import test_core

    endpoints = get_validated_path(
        args.endpoints, "endpoints", DEFAULT_ENDPOINTS_PATH, True
    )
    stories = get_validated_path(args.stories, "stories", DEFAULT_DATA_PATH)
    stories = data.get_core_directory(stories)
    output = args.output or DEFAULT_RESULTS_PATH
    args.config = get_validated_path(args.config, "config", DEFAULT_CONFIG_PATH)

    if len(args.model) == 1:
        args.model = args.model[0]

        model_path = get_validated_path(args.model, "model", DEFAULT_MODELS_PATH)

        test_core(
            model=model_path,
            stories=stories,
            endpoints=endpoints,
            output=output,
            kwargs=vars(args),
        )

    else:
        test_compare(args.model, stories, output)
Пример #5
0
def test_e2e_warning_if_no_nlu_model(monkeypatch: MonkeyPatch,
                                     trained_core_model: Text,
                                     capsys: CaptureFixture):
    from rasa.test import test_core

    # Patching is bit more complicated as we have a module `train` and function
    # with the same name 😬
    monkeypatch.setattr(sys.modules["rasa.core.test"], "test",
                        asyncio.coroutine(lambda *_, **__: True))

    test_core(trained_core_model, additional_arguments={"e2e": True})

    assert "No NLU model found. Using default" in capsys.readouterr().out
Пример #6
0
def test_core(args: argparse.Namespace, model_path: Optional[Text] = None
              ) -> None:
    from rasa.test import test_core

    args.model = get_validated_path(args.model, "model", DEFAULT_MODELS_PATH)
    args.endpoints = get_validated_path(args.endpoints, "endpoints",
                                        DEFAULT_ENDPOINTS_PATH, True)
    args.config = get_validated_path(args.config, "config", DEFAULT_CONFIG_PATH)
    args.stories = get_validated_path(args.stories, "stories",
                                      DEFAULT_DATA_PATH)

    args.stories = data.get_core_directory(args.stories)

    test_core(model_path=model_path, **vars(args))
Пример #7
0
def run_core_test(args: argparse.Namespace) -> None:
    """Run core tests."""
    from rasa.test import test_core_models_in_directory, test_core, test_core_models

    stories = rasa.cli.utils.get_validated_path(args.stories, "stories",
                                                DEFAULT_DATA_PATH)
    if args.e2e:
        stories = rasa.shared.data.get_test_directory(stories)
    else:
        stories = rasa.shared.data.get_core_directory(stories)

    output = args.out or DEFAULT_RESULTS_PATH
    args.errors = not args.no_errors

    rasa.shared.utils.io.create_directory(output)

    if isinstance(args.model, list) and len(args.model) == 1:
        args.model = args.model[0]

    if args.model is None:
        rasa.shared.utils.cli.print_error(
            "No model provided. Please make sure to specify the model to test with '--model'."
        )
        return

    if isinstance(args.model, str):
        model_path = rasa.cli.utils.get_validated_path(args.model, "model",
                                                       DEFAULT_MODELS_PATH)

        if args.evaluate_model_directory:
            test_core_models_in_directory(args.model, stories, output)
        else:
            test_core(
                model=model_path,
                stories=stories,
                output=output,
                additional_arguments=vars(args),
            )

    else:
        test_core_models(args.model, stories, output)

    rasa.shared.utils.cli.print_info(
        f"Failed stories written to '{os.path.join(output, FAILED_STORIES_FILE)}'"
    )
Пример #8
0
async def test_interpreter_passed_to_agent(
    monkeypatch: MonkeyPatch, trained_rasa_model: Text
):
    from rasa.test import test_core

    # Patching is bit more complicated as we have a module `train` and function
    # with the same name 😬
    monkeypatch.setattr(
        sys.modules["rasa.test"], "_test_core", asyncio.coroutine(lambda *_, **__: True)
    )

    agent_load = Mock()
    monkeypatch.setattr(Agent, "load", agent_load)

    test_core(trained_rasa_model)

    agent_load.assert_called_once()
    _, _, kwargs = agent_load.mock_calls[0]
    assert isinstance(kwargs["interpreter"], RasaNLUInterpreter)
Пример #9
0
async def test_e2e_warning_if_no_nlu_model(
    monkeypatch: MonkeyPatch, trained_core_model: Text, capsys: CaptureFixture
):
    from rasa.test import test_core

    # Patching is bit more complicated as we have a module `train` and function
    # with the same name 😬
    monkeypatch.setattr(
        sys.modules["rasa.test"], "_test_core", asyncio.coroutine(lambda *_, **__: True)
    )

    agent_load = Mock()
    monkeypatch.setattr(Agent, "load", agent_load)

    test_core(trained_core_model, additional_arguments={"e2e": True})

    assert "No NLU model found. Using default" in capsys.readouterr().out

    agent_load.assert_called_once()
    _, _, kwargs = agent_load.mock_calls[0]
    assert isinstance(kwargs["interpreter"], RegexInterpreter)
Пример #10
0
def test_core(args: argparse.Namespace,
              model_path: Optional[Text] = None) -> None:
    from rasa.test import test_core

    model = get_validated_path(args.model, "model", DEFAULT_MODELS_PATH)
    endpoints = get_validated_path(args.endpoints, "endpoints",
                                   DEFAULT_ENDPOINTS_PATH, True)
    stories = get_validated_path(args.stories, "stories", DEFAULT_DATA_PATH)
    stories = data.get_core_directory(stories)
    output = args.output or DEFAULT_RESULTS_PATH
    args.config = get_validated_path(args.config, "config",
                                     DEFAULT_CONFIG_PATH)

    test_core(
        model=model,
        stories=stories,
        endpoints=endpoints,
        model_path=model_path,
        output=output,
        kwargs=vars(args),
    )
Пример #11
0
def test(args: argparse.Namespace):
    test_core(args)
    test_nlu(args)
Пример #12
0
def test(args: argparse.Namespace):
    model_path = get_validated_path(args.model, "model", DEFAULT_MODELS_PATH)
    unpacked_model = get_model(model_path)

    test_core(args, unpacked_model)
    test_nlu(args, unpacked_model)