mike-backend / backend /python-service /tests /test_prompt_payload.py
bardd's picture
Deploy Mike backend-only Space
06671aa verified
Raw History Blame Contribute Delete
3.19 kB
from __future__ import annotations
import json
import os
import sys
import unittest
from pathlib import Path
SERVICE_ROOT = Path(__file__).resolve().parents[1]
BACKEND_ROOT = SERVICE_ROOT.parent
GOLDEN_ROOT = BACKEND_ROOT / "tests" / "golden" / "prompts"
if str(SERVICE_ROOT) not in sys.path:
sys.path.insert(0, str(SERVICE_ROOT))
from inference.client import build_payload # noqa: E402
from prompts.chat_system import chat_system_prompt # noqa: E402
from prompts.json_repair_system import JSON_REPAIR_SYSTEM # noqa: E402
from prompts.review_system import review_system_prompt # noqa: E402
from prompts.review_user import review_user_prompt # noqa: E402
class PromptPayloadTests(unittest.TestCase):
def test_payload_preserves_system_user_delimiters(self) -> None:
payload = build_payload(
system_prompt="SYSTEM BODY",
user_prompt="USER BODY",
max_tokens=128,
temperature=0.1,
)
self.assertEqual(payload["messages"][0], {
"role": "system",
"content": "SYSTEM BODY",
})
user_content = payload["messages"][1]["content"]
self.assertIn("SYSTEM INSTRUCTIONS:", user_content)
self.assertIn("SYSTEM BODY", user_content)
self.assertIn("USER INPUT:", user_content)
self.assertIn("USER BODY", user_content)
self.assertEqual(payload["tools"], [{"type": "web_search"}])
def test_review_system_matches_golden_template(self) -> None:
golden_path = GOLDEN_ROOT / "static" / "python-review-system-template.txt"
golden = golden_path.read_text(encoding="utf-8")
rendered = review_system_prompt(10)
self.assertTrue(rendered.startswith(golden.split("{{REVIEW_SCHEMA}}")[0]))
self.assertIn("Return at most 10 findings.", rendered)
def test_json_repair_system_matches_golden(self) -> None:
golden = (GOLDEN_ROOT / "static" / "python-json-repair-system.txt").read_text(
encoding="utf-8"
)
self.assertEqual(JSON_REPAIR_SYSTEM, golden.strip())
def test_review_user_matches_golden(self) -> None:
fixture_path = GOLDEN_ROOT / "composed" / "python-review-user.json"
fixture = json.loads(fixture_path.read_text(encoding="utf-8"))
fix = fixture["fixture"]
rendered = review_user_prompt(
review_text=fix["reviewText"],
document_name=fix["documentName"],
playbook_name=fix["playbookName"],
playbook_text=fix["playbookText"],
)
self.assertEqual(rendered, fixture["user"])
def test_chat_system_matches_golden(self) -> None:
fixture_path = GOLDEN_ROOT / "composed" / "python-chat-user.json"
fixture = json.loads(fixture_path.read_text(encoding="utf-8"))
rendered = chat_system_prompt(
playbook_name=fixture["fixture"]["playbookName"],
role_brief=fixture["fixture"]["roleBrief"],
)
golden = (GOLDEN_ROOT / "static" / "python-chat-system-buyer.txt").read_text(
encoding="utf-8"
)
self.assertEqual(rendered, golden.strip())
if __name__ == "__main__":
unittest.main()