diff --git a/comfy_cli/cmdline.py b/comfy_cli/cmdline.py index 3699ffe..5284752 100644 --- a/comfy_cli/cmdline.py +++ b/comfy_cli/cmdline.py @@ -325,7 +325,7 @@ def install( ) raise typer.Exit(code=1) - if pr and version not in {None, "nightly"} or commit: + if pr and (version not in {None, "nightly"} or commit): rprint("--pr cannot be used with --version or --commit") raise typer.Exit(code=1) diff --git a/tests/comfy_cli/command/github/test_pr.py b/tests/comfy_cli/command/github/test_pr.py index 8f72d16..b9c308d 100644 --- a/tests/comfy_cli/command/github/test_pr.py +++ b/tests/comfy_cli/command/github/test_pr.py @@ -298,6 +298,20 @@ def test_pr_and_commit_conflict(self, runner): assert result.exit_code != 0 + @patch("comfy_cli.command.install.execute") + @patch("comfy_cli.cmdline.check_comfy_repo", return_value=(False, None)) + @patch("comfy_cli.cmdline.workspace_manager") + @patch("comfy_cli.tracking.prompt_tracking_consent") + def test_commit_without_pr_does_not_conflict(self, mock_track, mock_ws, mock_check, mock_execute, runner): + """Test that --commit alone does not trigger --pr conflict error (issue #335)""" + mock_ws.get_workspace_path.return_value = ("/tmp/test", None) + result = runner.invoke( + app, ["--skip-prompt", "install", "--version", "nightly", "--commit", "abc123", "--nvidia"] + ) + + assert "--pr cannot be used" not in result.stdout + assert mock_execute.called + class TestPRInfoDataClass: """Test PRInfo data class"""