Repository: kedro-org/kedro
File: tests/framework/cli/test_starters.py (Python)

Code before:
    @pytest.mark.parametrize("example_pipeline", ["Yes", "No"])
    def test_valid_tools_flag(self, fake_kedro_cli, tools, example_pipeline):
        result = CliRunner().invoke(
            fake_kedro_cli,
            ["new", "--tools", tools, "--example", example_pipeline],
            input=_make_cli_prompt_input_without_tools(),
        )
        tools = _convert_tool_names_to_numbers(selected_tools=tools)
        _assert_template_ok(result, tools=tools, example_pipeline=example_pipeline)
        _assert_requirements_ok(result, tools=tools, repo_name="new-kedro-project")
        assert (
            "To skip the interactive flow you can run `kedro new` with\nkedro new --name=<your-project-name> --tools=<your-project-tools> --example=<yes/no>"
            in result.output
        )
        _clean_up_project(Path("./new-kedro-project"))

    def test_invalid_tools_flag(self, fake_kedro_cli):
        result = CliRunner().invoke(
            fake_kedro_cli,
            ["new", "--tools", "bad_input"],
            input=_make_cli_prompt_input_without_tools(),
        )

        assert result.exit_code != 0
        assert (
            "Please select from the available tools: lint, test, log, docs, data, pyspark, viz, all, none"
            in result.output
        )

    @pytest.mark.parametrize(
        "tools",
        ["lint,all", "test,none", "all,none"],
    )
    def test_invalid_tools_flag_combination(self, fake_kedro_cli, tools):
        result = CliRunner().invoke(
            fake_kedro_cli,
            ["new", "--tools", tools],
            input=_make_cli_prompt_input_without_tools(),
        )

        assert result.exit_code != 0
        assert (
            "Tools options 'all' and 'none' cannot be used with other options"
            in result.output
        )

    def test_flags_skip_interactive_flow(self, fake_kedro_cli):
        result = CliRunner().invoke(
            fake_kedro_cli,
            [
                "new",

Review comment (suggestion):
It would make for more text to read but I think it may help to give an example that the user can copy e.g. `kedro new --name=example-project --tools=none -example=no`

Code after:
            "none",
            "tests,logs,doc",
            "test,data,lint",
            "log,docs,data,test,lint",
            "log, docs, data, test, lint",
            "log,       docs,     data,   test,     lint",
            "all",
            "LINT",
            "ALL",
            "NONE",
            "TEST, LOG, DOCS",
            "test, DATA, liNt",
        ],
    )
    @pytest.mark.parametrize("example_pipeline", ["Yes", "No"])
    def test_valid_tools_flag(self, fake_kedro_cli, tools, example_pipeline):
        result = CliRunner().invoke(
            fake_kedro_cli,
            ["new", "--tools", tools, "--example", example_pipeline],
            input=_make_cli_prompt_input_without_tools(),
        )
        tools = _convert_tool_names_to_numbers(selected_tools=tools)
        _assert_template_ok(result, tools=tools, example_pipeline=example_pipeline)
        _assert_requirements_ok(result, tools=tools, repo_name="new-kedro-project")
        assert (
            "To skip the interactive flow you can run `kedro new` with\nkedro new --name=<your-project-name> --tools=<your-project-tools> --example=<yes/no>"
            in result.output
        )
        _clean_up_project(Path("./new-kedro-project"))

    def test_invalid_tools_flag(self, fake_kedro_cli):
        result = CliRunner().invoke(
            fake_kedro_cli,
            ["new", "--tools", "bad_input"],
            input=_make_cli_prompt_input_without_tools(),
        )

        assert result.exit_code != 0
        assert (
            "Please select from the available tools: lint, test, log, docs, data, pyspark, viz, all, none"
            in result.output
        )

    @pytest.mark.parametrize(
        "tools",
        ["lint,all", "test,none", "all,none"],
    )
    def test_invalid_tools_flag_combination(self, fake_kedro_cli, tools):
        result = CliRunner().invoke(
            fake_kedro_cli,
            ["new", "--tools", tools],