コード例 #1
0
def test_train_core_called_when_no_model_passed_and_core(
        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",
        "core",
        "--config",
        default_stack_config,
        "--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, "train_core", mock.train_core)
    monkeypatch.setattr(interactive, "perform_interactive_learning",
                        mock.perform_interactive_learning)

    interactive.interactive(args)
    mock.train_core.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_pass_arguments_to_rasa_train(default_stack_config: Text,
                                      monkeypatch: MonkeyPatch) -> None:
    # Create parser
    parser = argparse.ArgumentParser()
    sub_parser = parser.add_subparsers()
    interactive.add_subparser(sub_parser, [])

    # Parse interactive command
    args = parser.parse_args(["interactive", "--config", default_stack_config])
    interactive._set_not_required_args(args)

    # Mock actual training
    mock = Mock(return_value=TrainingResult(code=0))
    monkeypatch.setattr(rasa, "train", mock.method)

    # If the `Namespace` object does not have all required fields this will throw
    train.train(args)

    # Assert `train` was actually called
    mock.method.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()
コード例 #5
0
def test_train_called_when_no_model_passed(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",
        "--config",
        stack_config_path,
        "--data",
        "examples/moodbot/data",
    ])
    interactive._set_not_required_args(args)

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

    interactive.interactive(args)
    mock.train_model.assert_called_once()