77 lines
2.7 KiB
Python
77 lines
2.7 KiB
Python
# ruff: noqa: E402
|
|
"""Tests for the BRAVE/SERPER web-promo suppression when hosting-model-driven."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(REPO_ROOT / "skills" / "last30days" / "scripts"))
|
|
|
|
|
|
def _engine() -> Path:
|
|
return REPO_ROOT / "skills" / "last30days" / "scripts" / "last30days.py"
|
|
|
|
|
|
class FooterNudgeSuppressionTests(unittest.TestCase):
|
|
def _run(self, *argv: str, topic: str) -> subprocess.CompletedProcess:
|
|
cmd = [
|
|
sys.executable,
|
|
str(_engine()),
|
|
topic,
|
|
"--mock",
|
|
"--emit=md",
|
|
*argv,
|
|
]
|
|
env = {**os.environ, "LAST30DAYS_SKIP_PREFLIGHT": "1"}
|
|
# Strip any grounded-web keys the host might have so the promo path
|
|
# triggers deterministically in mock + no-backend.
|
|
for key in ("BRAVE_API_KEY", "EXA_API_KEY", "SERPER_API_KEY",
|
|
"PARALLEL_API_KEY", "OPENROUTER_API_KEY"):
|
|
env.pop(key, None)
|
|
return subprocess.run(cmd, capture_output=True, text=True, env=env)
|
|
|
|
def test_bare_run_emits_web_promo(self):
|
|
result = self._run(topic="OpenAI")
|
|
combined = result.stdout + result.stderr
|
|
# Mock mode still shows the promo when nothing indicates a hosting
|
|
# model is driving. Check both streams since the UI may emit to stderr.
|
|
self.assertIn("BRAVE_API_KEY", combined)
|
|
|
|
def test_competitors_plan_suppresses_web_promo(self):
|
|
result = self._run(
|
|
"--competitors-list", "Anthropic",
|
|
"--competitors-plan",
|
|
'{"Anthropic":{"x_handle":"AnthropicAI","subreddits":["ClaudeAI"]}}',
|
|
topic="OpenAI",
|
|
)
|
|
combined = result.stdout + result.stderr
|
|
self.assertNotIn(
|
|
"unlock native grounded web search",
|
|
combined,
|
|
msg="web promo should be suppressed when --competitors-plan is passed",
|
|
)
|
|
|
|
def test_plan_suppresses_web_promo(self):
|
|
plan = (
|
|
'{"intent":"concept","freshness_mode":"balanced_recent",'
|
|
'"cluster_mode":"none","subqueries":[{"label":"primary",'
|
|
'"search_query":"OpenAI","ranking_query":"OpenAI",'
|
|
'"sources":["grounding"]}],"source_weights":{"grounding":1.0}}'
|
|
)
|
|
result = self._run("--plan", plan, topic="OpenAI")
|
|
combined = result.stdout + result.stderr
|
|
self.assertNotIn(
|
|
"unlock native grounded web search",
|
|
combined,
|
|
msg="web promo should be suppressed when --plan is passed",
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|