from ddgs_api import cli def test_cli_main_emits_json(monkeypatch, capsys): monkeypatch.setenv("DDGS_OUTPUT", "json") def fake_search(query, **kwargs): assert query == "openai" assert kwargs["region"] == "us-en" return [{"title": "Result", "href": "https://example.com", "markdown": None}] monkeypatch.setattr("ddgs_api.cli.ddgs_search", fake_search) exit_code = cli.main(["openai"]) captured = capsys.readouterr() assert exit_code == 0 assert '"title": "Result"' in captured.out def test_cli_main_returns_error_code_on_search_failure(monkeypatch, capsys): def fake_search(query, **kwargs): raise RuntimeError("boom") monkeypatch.setattr("ddgs_api.cli.ddgs_search", fake_search) exit_code = cli.main(["openai"]) captured = capsys.readouterr() assert exit_code == 1 assert "Error: boom" in captured.err