Skip to content

Commit f6dddae

Browse files
committed
Fix tests
1 parent 4b3089c commit f6dddae

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

tests/test_credentials_global.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,15 @@ def test_reset_service(self) -> None:
3939

4040
@patch("sqlit.domains.connections.app.credentials.KeyringCredentialsService")
4141
@patch("sqlit.domains.connections.app.credentials.is_keyring_usable", return_value=True)
42-
def test_default_service_is_keyring(self, _mock_usable: MagicMock, mock_keyring_class: MagicMock) -> None:
43-
"""Test that default service is keyring-based."""
42+
@patch("sqlit.domains.shell.store.settings.SettingsStore.get_instance")
43+
def test_default_service_is_keyring(
44+
self, mock_store_get: MagicMock, _mock_usable: MagicMock, mock_keyring_class: MagicMock
45+
) -> None:
46+
"""Test that default service is keyring-based when plaintext not enabled."""
47+
mock_store = MagicMock()
48+
mock_store.load_all.return_value = {} # No plaintext setting
49+
mock_store_get.return_value = mock_store
50+
4451
mock_instance = MagicMock()
4552
mock_keyring_class.return_value = mock_instance
4653

@@ -76,6 +83,20 @@ def test_plaintext_file_when_consent_recorded(
7683
service = get_credentials_service()
7784
assert isinstance(service, PlaintextFileCredentialsService)
7885

86+
@patch("sqlit.domains.connections.app.credentials.is_keyring_usable", return_value=True)
87+
@patch("sqlit.domains.shell.store.settings.SettingsStore.get_instance")
88+
def test_plaintext_takes_priority_over_keyring(
89+
self, mock_store_get: MagicMock, _mock_usable: MagicMock
90+
) -> None:
91+
"""Test that plaintext is used when enabled, even if keyring is available."""
92+
mock_store = MagicMock()
93+
mock_store.load_all.return_value = {"allow_plaintext_credentials": True}
94+
mock_store_get.return_value = mock_store
95+
reset_credentials_service()
96+
service = get_credentials_service()
97+
# Should use plaintext even though keyring is usable
98+
assert isinstance(service, PlaintextFileCredentialsService)
99+
79100

80101
def test_plaintext_file_credentials_service_roundtrip(tmp_path, monkeypatch):
81102
monkeypatch.setattr("sqlit.domains.connections.app.credentials.CONFIG_DIR", tmp_path)

0 commit comments

Comments
 (0)