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

Aperta
#749 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@bigcat88 ci sta già lavorando.

Dal 21/8/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

audit:testing bug effort:trivial

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:

# 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
--- 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).

Lingua principale
Python
Stelle
1k
Fork
176
Merge medio
1g 11h
PR unite (30g)
87

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Comfy-Org/comfy-cli

Tutte le issue di Comfy-Org/comfy-cli

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.