Files
document-haness/tests/test_prompts.py
T

41 lines
1.7 KiB
Python

from __future__ import annotations
import unittest
from claridoc.models import Brief, LintReport
from claridoc.prompts import drafting_prompt, review_prompt, revision_prompt
from claridoc.structures import create_outline
from tests.helpers import brief_dict, make_sources
class PromptTests(unittest.TestCase):
def _korean_blog(self) -> Brief:
data = brief_dict()
data["title"] = "기술적 선택을 설명하는 글"
data["language"] = "ko-KR"
data["reader_goal"] = "안전한 구현 방식을 선택한다"
data["core_message"] = "기술 선택은 문제와 비용을 함께 설명해야 한다."
data["constraints"]["style_profile"] = "woowahan_tech_blog_ko"
return Brief.from_dict(data)
def test_korean_blog_prompts_separate_information_structure_from_sentence_form(self) -> None:
brief = self._korean_blog()
sources = make_sources()
outline = create_outline(brief, sources)
lint_report = LintReport(score=100.0, word_count=0, issues=[], metrics={})
draft = drafting_prompt(brief, outline, sources)
review = review_prompt(brief, outline, sources, "# draft", lint_report, "editor")
revision = revision_prompt(brief, outline, sources, "# draft", lint_report, [])
self.assertIn("semantic order, never as a sentence template", draft)
self.assertIn("첫 번째 제약은", draft)
self.assertIn("Information-architecture labels must not leak", review)
self.assertIn("real ordered sequences", review)
self.assertIn("Remove repeated ordinal sentence scaffolding", revision)
self.assertIn("real procedure, method, layer, or figure", revision)
if __name__ == "__main__":
unittest.main()