"""邮件渲染单测: 标签主题/HTML转义/内部key过滤(D2/D12)。不触网。""" import asyncio from app.services import email_service def _capture_send(monkeypatch): captured = {} async def fake_send(msg): captured["msg"] = msg return True monkeypatch.setattr(email_service, "_send", fake_send) return captured def _html(msg) -> str: return msg.get_payload()[0].get_payload(decode=True).decode("utf-8") def test_lead_email_subject_tag_and_escaped_body(monkeypatch): captured = _capture_send(monkeypatch) ok = asyncio.run(email_service.send_lead_email( customer_profile={"目标国家": "肯尼亚", "_internal": "x", "备注": "bold"}, contact_info={"phone": "+254712345678", "wechat": "wx"}, reasoning="强意向", conversation_messages=[ {"role": "user", "content": ""}, {"role": "assistant", "content": "ok"}, ], intent_level="interested", )) assert ok is True subject = str(captured["msg"]["Subject"]) assert "[新询盘·意向强]" in subject and "肯尼亚" in subject body = _html(captured["msg"]) assert "