落地海运私聊文字询价全流程,海运多项费用改走文本明细,避免企微卡片引用条截断。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-15 14:26:09 +08:00
co-authored by Cursor
parent 58b3c2f3e6
commit 0a3c74e3a1
41 changed files with 3702 additions and 48 deletions
@@ -41,6 +41,11 @@ COMPLETE_AIR = {
class ContinueTicketTests(unittest.TestCase):
def setUp(self) -> None:
from agent.redis_coord.runtime import shutdown_redis_runtime
shutdown_redis_runtime()
def test_model_contract_accepts_continue_intent(self) -> None:
digest = "a" * 64
parsed = parse_ordered_actions_arguments(
@@ -182,6 +187,36 @@ class ContinueTicketTests(unittest.TestCase):
self.assertEqual(phase, "wait_adopt")
self.assertTrue(any("报价方案" in x for x in replies))
def test_resume_after_quote_file_is_deal(self) -> None:
ledger = MemoryLedger()
created = ledger.create_ticket(
sender_id="u6", business_line="AIR", facts=COMPLETE_AIR
)
wo = created["work_order_no"]
ledger.upsert_quote(
work_order_no=wo,
quote={"total": "USD 1", "eta": "-", "valid_until": "-"},
to_status="已报价",
)
ledger.render_quote(
work_order_no=wo,
business_line="AIR",
facts=COMPLETE_AIR,
quote={"total": "USD 1"},
)
flow = AirTextInquiryFlow(ledger)
replies: list[str] = []
def reply(text: str, extra=None) -> None:
replies.append(text)
_ = extra
phase = flow.resume_historical(
sender_id="u6", work_order_no=wo, reply=reply
)
self.assertEqual(phase, "wait_deal")
self.assertTrue(any("成交" in x or copy.BTN_DEAL in x for x in replies))
def test_resume_missing_wo_asks(self) -> None:
flow = AirTextInquiryFlow(MemoryLedger())
replies: list[str] = []