feat: 海运查价带贸易条款且不带运输分类

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-20 17:47:12 +08:00
co-authored by Cursor
parent 27aeebb593
commit 3a6884e27d
6 changed files with 67 additions and 5 deletions
+23 -1
View File
@@ -273,11 +273,33 @@ class SeaTmsCardTests(unittest.TestCase):
self.extras.append(dict(extra) if extra else {})
def test_assemble_sea_query_does_not_need_air_measures(self) -> None:
ready = assemble_sea_query(COMPLETE_SEA)
ready = assemble_sea_query({**COMPLETE_SEA, "贸易条款": "FOB", "运输分类": "Port to Port"})
self.assertTrue(ready["ok"])
self.assertEqual(ready["missing"], [])
self.assertNotIn("件数", ready.get("missing") or [])
def test_assemble_requires_trade_terms_not_class(self) -> None:
src = {
"起运港": "上海",
"目的港": "洛杉矶",
"品名": "普货",
"货量": "20吨",
"整柜或拼柜": "整柜",
"箱型箱量": "1x40HQ",
"运输分类": "Port to Port",
}
missing = assemble_sea_query(src)
self.assertFalse(missing["ok"])
self.assertIn("贸易条款", missing["missing"])
self.assertNotIn("运输分类", missing["missing"])
src["贸易条款"] = "FOB"
ready = assemble_sea_query(src)
self.assertTrue(ready["ok"])
self.assertEqual(ready["tms_facts"]["贸易条款"], "FOB")
self.assertNotIn("运输分类", ready["tms_facts"])
self.assertEqual(ready["facts"]["运输分类"], "Port to Port")
def test_long_fee_lines_go_to_text_not_clipped_card(self) -> None:
"""海运多项费用:完整明细必须在文本里,卡片引用条不得半截。"""
long_quote = {