Files
2026-07-13 13:12:33 +08:00

60 lines
1.6 KiB
Python

"""CLI tests for `opensquilla search`."""
from __future__ import annotations
from typer.testing import CliRunner
from opensquilla.cli.main import app
runner = CliRunner()
def test_search_list_shows_runtime_providers():
result = runner.invoke(app, ["search", "list"])
assert result.exit_code == 0, result.stdout
assert "brave" in result.stdout
assert "duckduckgo" in result.stdout
def test_search_configure_writes_config(tmp_path, monkeypatch):
target = tmp_path / "c.toml"
monkeypatch.setenv("OPENSQUILLA_GATEWAY_CONFIG_PATH", str(target))
result = runner.invoke(
app,
[
"search",
"configure",
"brave",
"--api-key",
"brave-secret",
"--max-results",
"8",
],
)
assert result.exit_code == 0, result.stdout
text = target.read_text()
assert 'search_provider = "brave"' in text
assert 'search_api_key = "brave-secret"' in text
assert "brave-secret" not in result.stdout
def test_search_configure_warns_when_env_key_is_not_set(tmp_path, monkeypatch):
target = tmp_path / "c.toml"
monkeypatch.setenv("OPENSQUILLA_GATEWAY_CONFIG_PATH", str(target))
monkeypatch.delenv("BRAVE_SEARCH_API_KEY", raising=False)
result = runner.invoke(
app,
[
"search",
"configure",
"brave",
"--api-key-env",
"BRAVE_SEARCH_API_KEY",
],
)
assert result.exit_code == 0, result.stdout
assert "Warning" in result.stdout
assert "BRAVE_SEARCH_API_KEY" in result.stdout