Files
inquiry_robot/inquiry-agent/tests/test_tms_land_query.py
T

108 lines
3.6 KiB
Python

"""
陆运 TMS 出站拼参:分类和中港装载方式不得带出。
"""
from __future__ import annotations
import os
import sys
import unittest
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
if ROOT not in sys.path:
sys.path.insert(0, ROOT)
from agent.schema.tms_land_query import assemble_land_query
class TmsLandQueryTest(unittest.TestCase):
def test_outbound_omits_class_and_hk_load(self):
facts = {
"运输类型": "中港零担/集拼",
"线路类别": "东南亚",
"运输分类": "急件",
"起运港": "广州",
"目的港": "香港",
"品名": "衣服",
"车型/数量": "9米6/1",
"通关口岸": "皇岗",
}
got = assemble_land_query(facts)
self.assertTrue(got["ok"])
out = got["outbound"]
self.assertEqual(out["landTransportType"], "中港")
self.assertEqual(out["routeCategory"], "SOUTHEAST_ASIA")
self.assertNotIn("landRouteCategory", out)
self.assertEqual(out["vehicleType"], "9米6")
self.assertEqual(str(out["quantity"]), "1")
self.assertEqual(out["customsPort"], "皇岗")
self.assertNotIn("运输分类", out)
self.assertNotIn("landClass", out)
self.assertNotIn("hkLoadType", out)
self.assertNotIn("中港装载方式", out)
def test_hk_full_truck_omits_vehicle(self):
facts = {
"运输类型": "中港整车",
"线路类别": "东南亚",
"起运港": "广州",
"目的港": "香港",
"品名": "衣服",
}
got = assemble_land_query(facts)
self.assertTrue(got["ok"])
out = got["outbound"]
self.assertEqual(out["landTransportType"], "中港")
self.assertNotIn("vehicleType", out)
self.assertNotIn("quantity", out)
def test_domestic_ftl_splits_combo(self):
facts = {
"运输类型": "国内运输整车",
"线路类别": "国内长途/零担",
"起运港": "广州",
"目的港": "深圳",
"品名": "衣服",
"车型/数量": "9米6*2",
}
out = assemble_land_query(facts)["outbound"]
self.assertEqual(out["vehicleType"], "9米6")
self.assertEqual(out["quantity"], "2")
def test_domestic_has_no_customs(self):
facts = {
"运输类型": "国内运输拼车",
"线路类别": "国内长途/零担",
"起运港": "广州",
"目的港": "深圳",
"品名": "衣服",
"体积": "100CBM",
"毛重": "50kg",
}
out = assemble_land_query(facts)["outbound"]
self.assertNotIn("customsPort", out)
self.assertIn("volumeCbm", out)
self.assertEqual(out["landTransportType"], "DOMESTIC_LTL")
self.assertEqual(out["routeCategory"], "DOMESTIC_LONG_LTL")
def test_wo011_pinche_city_dist_uses_tms_enums(self):
facts = {
"运输类型": "国内运输拼车",
"线路类别": "国内城配/拖车/打包",
"起运港": "泉州市",
"目的港": "南京市",
"品名": "通信机柜及线缆配件",
"体积": "10CBM",
"毛重": "10KG",
}
got = assemble_land_query(facts)
self.assertTrue(got["ok"])
out = got["outbound"]
self.assertEqual(out["landTransportType"], "DOMESTIC_LTL")
self.assertEqual(out["routeCategory"], "DOMESTIC_CITY_DIST")
self.assertNotIn("landRouteCategory", out)
if __name__ == "__main__":
unittest.main()