@@ -461,6 +461,38 @@ def test_creates_app_on_backend(
461461 assert "App created successfully" in result .output
462462
463463
464+ @pytest .mark .respx
465+ def test_shows_api_message_when_create_app_is_forbidden (
466+ logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
467+ ) -> None :
468+ steps = [Keys .ENTER , Keys .ENTER , * "demo" , Keys .ENTER , Keys .ENTER , Keys .ENTER ]
469+ team = _get_random_team ()
470+
471+ respx_mock .get ("/teams/" ).mock (
472+ return_value = Response (200 , json = {"data" : [team ]})
473+ )
474+ respx_mock .post (
475+ "/apps/" , json = {"name" : "demo" , "team_id" : team ["id" ], "directory" : None }
476+ ).mock (
477+ return_value = Response (
478+ 403 ,
479+ json = {"detail" : "Your account cannot create apps for this team." },
480+ )
481+ )
482+
483+ with (
484+ changing_dir (tmp_path ),
485+ patch ("rich_toolkit.container.getchar" ) as mock_getchar ,
486+ ):
487+ mock_getchar .side_effect = steps
488+
489+ result = runner .invoke (app , ["deploy" ])
490+
491+ assert result .exit_code == 1
492+ assert "You don't have permissions for this resource" in result .output
493+ assert "API message: Your account cannot create apps for this team." in result .output
494+
495+
464496@pytest .mark .respx
465497def test_creates_app_with_directory (
466498 logged_in_cli : None , tmp_path : Path , respx_mock : respx .MockRouter
0 commit comments