Files
last30days-skill/tests/test_footer_nudge_suppression.py
T
2026-04-24 11:52:48 -04:00

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()