From 9e72b69cf83a325eb869d331e82673f49d72026e Mon Sep 17 00:00:00 2001 From: ManOwnFire <46072705+VasilisAvgoustakis@users.noreply.github.com> Date: Thu, 10 Jul 2025 16:59:06 +0200 Subject: [PATCH] fix (cli): issue 9386 - show settings.json path in /settings (#9481) --- .gitignore | 2 ++ openhands/cli/settings.py | 6 ++++++ tests/unit/test_cli_settings.py | 9 +++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index df48a5095f..c1c3dff5c3 100644 --- a/.gitignore +++ b/.gitignore @@ -182,6 +182,8 @@ cython_debug/ .roo/rules .cline/rules .windsurf/rules +.repomix +repomix-output.txt # evaluation evaluation/evaluation_outputs diff --git a/openhands/cli/settings.py b/openhands/cli/settings.py index 314797688c..6fb1d6842a 100644 --- a/openhands/cli/settings.py +++ b/openhands/cli/settings.py @@ -1,3 +1,5 @@ +from pathlib import Path + from prompt_toolkit import PromptSession, print_formatted_text from prompt_toolkit.completion import FuzzyWordCompleter from prompt_toolkit.formatted_text import HTML @@ -71,6 +73,10 @@ def display_settings(config: OpenHandsConfig) -> None: ' Memory Condensation', 'Enabled' if config.enable_default_condenser else 'Disabled', ), + ( + ' Configuration File', + str(Path(config.file_store_path) / 'settings.json'), + ), ] ) diff --git a/tests/unit/test_cli_settings.py b/tests/unit/test_cli_settings.py index 8de111fd89..edfd28075b 100644 --- a/tests/unit/test_cli_settings.py +++ b/tests/unit/test_cli_settings.py @@ -1,3 +1,4 @@ +from pathlib import Path from unittest.mock import AsyncMock, MagicMock, patch import pytest @@ -37,9 +38,10 @@ class TestDisplaySettings: llm_config.api_key = SecretStr('test-api-key') config.get_llm_config.return_value = llm_config config.default_agent = 'test-agent' + config.file_store_path = '/tmp' # Set up security as a separate mock - security_mock = MagicMock() + security_mock = MagicMock(spec=OpenHandsConfig) security_mock.confirmation_mode = True config.security = security_mock @@ -48,13 +50,14 @@ class TestDisplaySettings: @pytest.fixture def advanced_app_config(self): - config = MagicMock(spec=OpenHandsConfig) + config = MagicMock() llm_config = MagicMock() llm_config.base_url = 'https://custom-api.com' llm_config.model = 'custom-model' llm_config.api_key = SecretStr('test-api-key') config.get_llm_config.return_value = llm_config config.default_agent = 'test-agent' + config.file_store_path = '/tmp' # Set up security as a separate mock security_mock = MagicMock() @@ -87,6 +90,8 @@ class TestDisplaySettings: assert 'Enabled' in settings_text assert 'Memory Condensation:' in settings_text assert 'Enabled' in settings_text + assert 'Configuration File' in settings_text + assert str(Path(app_config.file_store_path)) in settings_text @patch('openhands.cli.settings.print_container') def test_display_settings_advanced_config(