示例#1
0
def test_train_called_when_no_model_passed(
    default_stack_config: Text, monkeypatch: MonkeyPatch,
) -> None:
    parser = argparse.ArgumentParser()
    sub_parser = parser.add_subparsers()
    interactive.add_subparser(sub_parser, [])

    args = parser.parse_args(
        [
            "interactive",
            "--config",
            default_stack_config,
            "--data",
            "examples/moodbot/data",
        ]
    )
    interactive._set_not_required_args(args)

    # Mock actual training and interactive learning methods
    mock = Mock()
    monkeypatch.setattr(train, "train", mock.train_model)
    monkeypatch.setattr(
        interactive, "perform_interactive_learning", mock.perform_interactive_learning
    )

    interactive.interactive(args)
    mock.train_model.assert_called_once()
示例#2
0
def test_no_interactive_without_core_data(
    default_stack_config: Text, monkeypatch: MonkeyPatch,
) -> None:
    parser = argparse.ArgumentParser()
    sub_parser = parser.add_subparsers()
    interactive.add_subparser(sub_parser, [])

    args = parser.parse_args(
        [
            "interactive",
            "--config",
            default_stack_config,
            "--data",
            "examples/moodbot/data/nlu.md",
        ]
    )
    interactive._set_not_required_args(args)

    mock = Mock()
    monkeypatch.setattr(train, "train", mock.train_model)
    monkeypatch.setattr(
        interactive, "perform_interactive_learning", mock.perform_interactive_learning
    )

    with pytest.raises(SystemExit):
        interactive.interactive(args)

    mock.train_model.assert_not_called()
    mock.perform_interactive_learning.assert_not_called()
示例#3
0
def test_train_core_called_when_no_model_passed_and_core(
        stack_config_path: Text, monkeypatch: MonkeyPatch) -> None:
    parser = argparse.ArgumentParser()
    sub_parser = parser.add_subparsers()
    interactive.add_subparser(sub_parser, [])

    args = parser.parse_args([
        "interactive",
        "core",
        "--config",
        stack_config_path,
        "--stories",
        "examples/moodbot/data/stories.yml",
        "--domain",
        "examples/moodbot/domain.yml",
    ])
    interactive._set_not_required_args(args)

    # Mock actual training and interactive learning methods
    mock = Mock()
    monkeypatch.setattr(train, "run_core_training", mock.run_core_training)
    monkeypatch.setattr(interactive, "perform_interactive_learning",
                        mock.perform_interactive_learning)

    interactive.interactive(args)
    mock.run_core_training.assert_called_once()
示例#4
0
def test_no_interactive_without_core_data(stack_config_path: Text,
                                          monkeypatch: MonkeyPatch,
                                          nlu_data_path: Text) -> None:
    parser = argparse.ArgumentParser()
    sub_parser = parser.add_subparsers()
    interactive.add_subparser(sub_parser, [])

    args = parser.parse_args([
        "interactive", "--config", stack_config_path, "--data", nlu_data_path
    ])
    interactive._set_not_required_args(args)

    mock = Mock()
    monkeypatch.setattr(train, "run_training", mock.train_model)
    monkeypatch.setattr(interactive, "perform_interactive_learning",
                        mock.perform_interactive_learning)

    with pytest.raises(SystemExit):
        interactive.interactive(args)

    mock.train_model.assert_not_called()
    mock.perform_interactive_learning.assert_not_called()