Comfy-Org / Comfy-Org/comfy-cli

test: no regression test for the `--cpu` torch branch fixed in #344

Open
#749 0 comments 0 reactions 1 assignee Claimed by @bigcat88 View on GitHub
audit:testing bug effort:trivial
Dominant language
Python
Stars
968
Forks
151
Avg merge
1d 9h
Merged PRs (30d)
77

Description

## Missing Regression Test

Original bug: #344 — `comfy-cli install --cpu still installs CUDA version of PyTorch`
Fix PR: #345 (merged 2026-01-05)

PR #345 changed `comfy_cli/command/install.py` only — `+21 -0`, **no test files**. The CPU branch it added is still the fix in place today:

```python
# comfy_cli/command/install.py:75-76
if gpu is None:
result = _pip_install_torch(python, ["--extra-index-url", "https://download.pytorch.org/whl/cpu"])
```

## Why this gap matters

`TestTorchInstallCommands` (`tests/comfy_cli/test_install_python_resolution.py:281`) parametrizes **every other branch** of that same if-chain:

- 6 ROCm versions — `:285-290`
- 5 CUDA versions — `:317-321`
- NVIDIA-on-Linux — `:344`

`gpu is None` is the one branch with no case. Delete `install.py:75-76` and the entire suite stays green, while `comfy install --cpu` silently reinstalls a CUDA build — the original #344 symptom, verbatim.

Control for the "surely something covers it" reaction: the only `whl/cpu` assertion anywhere in `tests/` is `tests/uv/test_torch_backend_compile.py:74`, and it exercises `DependencyCompiler` (`comfy_cli/uv.py`), the `--fast-deps` path — a **different function** from the one #345 fixed. It is an adjacent code path, not the failure path.

```
$ git grep -n 'whl/cpu' origin/main -- tests/
tests/uv/test_torch_backend_compile.py:74: assert "download.pytorch.org/whl/cpu" in content
```

`tests/comfy_cli/test_install_python_resolution.py:19` does pass `gpu=None`, but asserts only `cmd[0] == "/resolved/python"` — it would pass with the CPU branch deleted, because the `requirements.txt` subprocess call alone satisfies it.

## Suggested test

- **Layer**: unit
- **File**: `tests/comfy_cli/test_install_python_resolution.py`, appended to the existing `TestTorchInstallCommands`
- **Asserts**: the torch install command for `gpu=None` contains `https://download.pytorch.org/whl/cpu` and contains no `whl/cu*` index

Patch below applies to `origin/main` and matches the surrounding style, reusing the file's existing `_get_torch_install_cmd` helper.

Proposed patch

```diff
--- a/tests/comfy_cli/test_install_python_resolution.py
+++ b/tests/comfy_cli/test_install_python_resolution.py
@@ -361,3 +361,26 @@ class TestTorchInstallCommands:
cmd = _get_torch_install_cmd(mock_run.call_args_list)
assert "--index-url" in cmd
assert "https://download.pytorch.org/whl/cu126" in cmd
+
+ def test_cpu_uses_cpu_wheel_index(self, tmp_path):
+ """Regression test for #344: `--cpu` must not fall through to a CUDA wheel.
+
+ `gpu is None` is the CPU branch (comfy_cli/command/install.py:75-76). Every
+ other branch of that if-chain is parametrized above; this one was not, so
+ deleting the branch left the whole suite green while `comfy install --cpu`
+ silently installed the default CUDA build again.
+ """
+ repo_dir = str(tmp_path)
+ (tmp_path / "requirements.txt").write_text("some-package\n")
+
+ with patch("comfy_cli.command.install.subprocess.run", return_value=MagicMock(returncode=0)) as mock_run:
+ install.pip_install_comfyui_dependencies(
+ repo_dir,
+ gpu=None,
+ plat=constants.OS.LINUX,
+ cuda_version=constants.CUDAVersion.v12_6,
+ skip_torch_or_directml=False,
+ skip_requirement=False,
+ python="/usr/bin/python",
+ )
+
+ cmd = _get_torch_install_cmd(mock_run.call_args_list)
+ assert cmd is not None, "no torch install command was issued for the CPU path"
+ assert "https://download.pytorch.org/whl/cpu" in cmd
+ assert not any(a.startswith("https://download.pytorch.org/whl/cu") for a in cmd)
```

**Not executed.** The audit box has no `typer` installed and the run was under a no-install constraint, so this patch is offered unverified rather than with a red/green result. It is written against the file's existing helper and fixtures; please run it before merging.

## Affected code

- `comfy_cli/command/install.py:75-76` — the fix, still present
- `tests/comfy_cli/test_install_python_resolution.py:281-361` — the class that covers every sibling branch

Filed by a closed-bug regression audit (Comfy-Org/comfy-cli, `origin/main` @ 3ff9f55).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.