diff --git a/recce/server.py b/recce/server.py index f691e240..399862ad 100644 --- a/recce/server.py +++ b/recce/server.py @@ -166,6 +166,7 @@ async def config_flag(): async def mark_onboarding_completed(): context = default_context() context.mark_onboarding_completed() + app.state.flag['show_onboarding_guide'] = False @app.get("/api/info") diff --git a/recce/util/recce_cloud.py b/recce/util/recce_cloud.py index ace63fcf..a2bbca1f 100644 --- a/recce/util/recce_cloud.py +++ b/recce/util/recce_cloud.py @@ -127,10 +127,13 @@ def set_onboarding_state(self, state: str): def get_recce_cloud_onboarding_state(token: str) -> str: - recce_cloud = RecceCloud(token) - user_info = recce_cloud.get_user_info() - if user_info: - return user_info.get('onboarding_state') + try: + recce_cloud = RecceCloud(token) + user_info = recce_cloud.get_user_info() + if user_info: + return user_info.get('onboarding_state') + except Exception as e: + logger.debug(str(e)) return 'undefined' diff --git a/tests/test_cli.py b/tests/test_cli.py index be4a83eb..83f2d2fa 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -39,12 +39,14 @@ def test_cmd_server_with_cloud_without_token(self, mock_run): result = self.runner.invoke(cli_command_server, ['--cloud', '--password', 'unittest']) assert result.exit_code == 1 + @patch('recce.util.recce_cloud.get_recce_cloud_onboarding_state') @patch('recce.cli.uvicorn.run') @patch('recce.cli.RecceStateLoader') - def test_cmd_server_with_cloud(self, mock_state_loader_class, mock_run): + def test_cmd_server_with_cloud(self, mock_state_loader_class, mock_run, mock_get_recce_cloud_onboarding_state): mock_state_loader = MagicMock(spec=RecceStateLoader) mock_state_loader.verify.return_value = True mock_state_loader.review_mode = True + mock_get_recce_cloud_onboarding_state.return_value = 'completed' mock_state_loader_class.return_value = mock_state_loader self.runner.invoke(cli_command_server, ['--cloud', '--password', 'unittest', '--cloud-token', 'unittest'])