fugee / tests /unit /test_doc_fields.py
helmo's picture
[agentic] Port pi loop hooks + LLM-drafted editable (Word) documents
b93c45d
Raw
History Blame Contribute Delete
1.58 kB
"""tests/unit/test_doc_fields.py — document drafting field rules.
The personal statement is drafted (LLM at runtime; deterministic fallback here);
pre-filled values trace to real session data; missing specifics become clearly
marked [placeholders]; nothing is fabricated.
"""
from agent.drafting import fallback_statement
from agent.tools.doc_generator import _html_with_placeholders, preview_statement_html
from app.state.session import SessionState, State
def _session(origin="Ethiopia"):
s = SessionState()
for t in (State.INTAKE, State.SITUATION, State.HISTORY, State.GOALS, State.REVIEW,
State.ASSESSMENT, State.RECOMMENDATIONS, State.DOCUMENTS):
s.transition_to(t)
s.interview.origin_country = origin
s.interview.current_country = "Sudan"
s.interview.free_text_history = "Armed men came to our village."
return s
def test_fallback_statement_uses_real_data_and_placeholders():
out = fallback_statement(_session())
assert "Ethiopia" in out # real data
assert "[your full name]" in out # placeholder for the person to fill
assert "Armed men came to our village." in out
def test_placeholders_highlighted_in_html():
html = _html_with_placeholders("My name is [your full name].")
assert 'class="fill"' in html and "[your full name]" in html
def test_preview_renders_without_crash_on_empty_session():
s = SessionState()
html = preview_statement_html(s) # no data -> placeholders, no crash
assert "Personal Statement" in html
assert "None" not in html