def METHOD_NAME(
    fake_repo_path: Path, dummy_config: Path, fake_kedro_cli: click.CommandCollection
):
    old_settings = settings.as_dict()
    starter_path = Path(__file__).resolve().parents[3]
    starter_path = starter_path / "features" / "steps" / "test_starter"
    CliRunner().invoke(
        fake_kedro_cli, ["new", "-c", str(dummy_config), "--starter", str(starter_path)]
    )
    # Delete the project logging.yml, which leaves behind info.log and error.log files.
    # This leaves logging config as the framework default.
    (fake_repo_path / "conf" / "base" / "logging.yml").unlink()
    # NOTE: Here we load a couple of modules, as they would be imported in
    # the code and tests.
    # It's safe to remove the new entries from path due to the python
    # module caching mechanism. Any `reload` on it will not work though.
    old_path = sys.path.copy()
    sys.path = [str(fake_repo_path / "src")] + sys.path
    import_module(PACKAGE_NAME)
    configure_project(PACKAGE_NAME)
    yield fake_kedro_cli
    # reset side-effects of configure_project
    pipelines.configure()
    for key, value in old_settings.items():
        settings.set(key, value)
    sys.path = old_path
    # configure_project does imports that add PACKAGE_NAME.pipelines,
    # PACKAGE_NAME.settings to sys.modules. These need to be removed.
    # Ideally we would reset sys.modules to exactly what it was before
    # running anything, but removal of distutils.build.commands from
    # sys.modules mysteriously makes some tests for `kedro micropkg package`
    # fail on Windows, Python 3.7 and 3.8.
    for module in list(sys.modules.keys()):
        if module.startswith(PACKAGE_NAME):
            del sys.modules[module]