def METHOD_NAME(runner, project, project_with_remote):
    """Test ``renku storage clean`` command."""
    project_with_remote
    with (project_context.path / "tracked").open("w") as fp:
        fp.write("tracked file")
    project_context.repository.add("*")
    project_context.repository.commit("tracked file")
    result = runner.invoke(cli, ["storage", "clean", "tracked"], catch_exceptions=False)
    assert 0 == result.exit_code, format_result_exception(result)
    assert "These paths were ignored as they are not tracked" in result.output
    subprocess.call(["git", "lfs", "track", "tracked"])
    project_context.repository.add("*")
    project_context.repository.commit("Tracked in lfs")
    project_context.repository.push("origin", no_verify=True)
    with (project_context.path / "tracked").open("r") as fp:
        assert "tracked file" in fp.read()
    assert "tracked" in Path(".gitattributes").read_text()
    lfs_objects = []
    for _, _, files in os.walk(str(project_context.path / ".git" / "lfs" / "objects")):
        lfs_objects.extend(files)
    assert 1 == len(lfs_objects)
    result = runner.invoke(cli, ["storage", "clean", "tracked"], catch_exceptions=False)
    assert 0 == result.exit_code, format_result_exception(result)
    assert "version https://git-lfs.github.com/spec/v1" in (project_context.path / "tracked").read_text()
    lfs_objects = []
    for _, _, files in os.walk(str(project_context.path / ".git" / "lfs" / "objects")):
        lfs_objects.extend(files)
    assert 0 == len(lfs_objects)
    # already clean file should be ignored on clean
    result = runner.invoke(cli, ["storage", "clean", "tracked"], catch_exceptions=False)
    assert 0 == result.exit_code, format_result_exception(result)