@@ -312,6 +312,47 @@ def test_commit_without_pr_does_not_conflict(self, mock_track, mock_ws, mock_che
312312 assert "--pr cannot be used" not in result .stdout
313313 assert mock_execute .called
314314
315+ @patch ("comfy_cli.command.install.execute" )
316+ @patch ("comfy_cli.cmdline.check_comfy_repo" , return_value = (False , None ))
317+ @patch ("comfy_cli.cmdline.workspace_manager" )
318+ @patch ("comfy_cli.tracking.prompt_tracking_consent" )
319+ def test_cpu_pr_conflict_with_version (self , mock_track , mock_ws , mock_check , mock_execute , runner ):
320+ """Test that --cpu --pr with --version is rejected"""
321+ mock_ws .get_workspace_path .return_value = ("/tmp/test" , None )
322+ result = runner .invoke (app , ["--skip-prompt" , "install" , "--cpu" , "--pr" , "#123" , "--version" , "1.0.0" ])
323+
324+ assert result .exit_code != 0
325+ assert "--pr cannot be used" in result .stdout
326+ assert not mock_execute .called
327+
328+ @patch ("comfy_cli.command.install.execute" )
329+ @patch ("comfy_cli.cmdline.check_comfy_repo" , return_value = (False , None ))
330+ @patch ("comfy_cli.cmdline.workspace_manager" )
331+ @patch ("comfy_cli.tracking.prompt_tracking_consent" )
332+ def test_cpu_pr_conflict_with_commit (self , mock_track , mock_ws , mock_check , mock_execute , runner ):
333+ """Test that --cpu --pr with --commit is rejected"""
334+ mock_ws .get_workspace_path .return_value = ("/tmp/test" , None )
335+ result = runner .invoke (
336+ app , ["--skip-prompt" , "install" , "--cpu" , "--pr" , "#123" , "--version" , "nightly" , "--commit" , "abc123" ]
337+ )
338+
339+ assert result .exit_code != 0
340+ assert "--pr cannot be used" in result .stdout
341+ assert not mock_execute .called
342+
343+ @patch ("comfy_cli.command.install.execute" )
344+ @patch ("comfy_cli.cmdline.check_comfy_repo" , return_value = (False , None ))
345+ @patch ("comfy_cli.cmdline.workspace_manager" )
346+ @patch ("comfy_cli.tracking.prompt_tracking_consent" )
347+ def test_cpu_pr_passes_pr_to_execute (self , mock_track , mock_ws , mock_check , mock_execute , runner ):
348+ """Test that --cpu --pr passes pr parameter to install_inner.execute"""
349+ mock_ws .get_workspace_path .return_value = ("/tmp/test" , None )
350+ runner .invoke (app , ["--skip-prompt" , "install" , "--cpu" , "--pr" , "#123" ])
351+
352+ assert mock_execute .called
353+ call_kwargs = mock_execute .call_args .kwargs
354+ assert call_kwargs .get ("pr" ) == "#123"
355+
315356
316357class TestPRInfoDataClass :
317358 """Test PRInfo data class"""
0 commit comments