You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
1.0 KiB
Python

# backend/tests/test_mail_ai.py — phase-16+: 메일 시드 제거 → 직접 생성
from app.models import Email
from app.services.mail_ai import analyze_email
from tests._factories import make_email
from tests._fake_llm import FakeLLMProvider
def test_existing_ai_is_reused(client, session):
s, _ = session
e = make_email(s, id="m1", subject="온보딩 시안 v3", ai_json={"summary": "온보딩 시안 v3 요약"})
out = analyze_email(s, e, FakeLLMProvider())
assert out["summary"].startswith("온보딩 시안 v3") # 기존 ai_json 재사용(LLM 미호출)
def test_new_email_analyzed_by_llm(client, session):
s, _ = session
e = Email(
id="mX",
account="work",
from_key="hyunwoo",
subject="[중요] 14시 미팅 부탁",
body=["14시에 봬요"],
ai_json={},
)
s.add(e)
s.commit()
out = analyze_email(s, e, FakeLLMProvider()) # 실 LLM 대역(결정적)
assert out["priority"] == "높음" # [중요]
assert len(out["events"]) == 1 # 14시 → event 후보