落地陆运私聊文字询价:选项核对后再建单查价,并按线路拉产品进群。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
"""
|
||||
陆运五套询价必填校验。不连 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.field_validate import display_name, validate_required_fields
|
||||
|
||||
|
||||
class LandFieldValidateTest(unittest.TestCase):
|
||||
def test_ltl_missing_volume(self):
|
||||
got = validate_required_fields(
|
||||
facts={"起运港": "广州", "目的港": "深圳", "品名": "衣服", "毛重": "50kg"},
|
||||
business_line="LAND",
|
||||
land_subtype="国内运输拼车",
|
||||
)
|
||||
self.assertFalse(got["ok"])
|
||||
self.assertIn("体积", got["missing"])
|
||||
|
||||
def test_hk_lcl_still_needs_vehicle(self):
|
||||
got = validate_required_fields(
|
||||
facts={
|
||||
"起运港": "广州",
|
||||
"目的港": "香港",
|
||||
"品名": "衣服",
|
||||
"体积": "10CBM",
|
||||
"毛重": "50kg",
|
||||
"中港装载方式": "零担/集拼",
|
||||
},
|
||||
business_line="LAND",
|
||||
land_subtype="中港",
|
||||
)
|
||||
self.assertIn("车型/数量", got["missing"])
|
||||
self.assertNotIn("数量", got["missing"])
|
||||
self.assertNotIn("车型", got["missing"])
|
||||
|
||||
def test_hk_full_truck_skips_vehicle(self):
|
||||
got = validate_required_fields(
|
||||
facts={
|
||||
"起运港": "广州",
|
||||
"目的港": "香港",
|
||||
"品名": "衣服",
|
||||
"中港装载方式": "整车",
|
||||
},
|
||||
business_line="LAND",
|
||||
land_subtype="中港",
|
||||
)
|
||||
self.assertTrue(got["ok"])
|
||||
self.assertNotIn("车型/数量", got["missing"])
|
||||
|
||||
def test_domestic_ftl_one_field(self):
|
||||
got = validate_required_fields(
|
||||
facts={
|
||||
"起运港": "广州",
|
||||
"目的港": "深圳",
|
||||
"品名": "衣服",
|
||||
"车型/数量": "9米6/1",
|
||||
},
|
||||
business_line="LAND",
|
||||
land_subtype="国内运输整车",
|
||||
)
|
||||
self.assertTrue(got["ok"])
|
||||
self.assertEqual(got["facts"]["车型/数量"], "9米6/1")
|
||||
|
||||
def test_cross_ftl_folds_split_keys(self):
|
||||
got = validate_required_fields(
|
||||
facts={
|
||||
"起运港": "广州",
|
||||
"目的港": "河内",
|
||||
"品名": "衣服",
|
||||
"车型": "9米6",
|
||||
"数量": "1",
|
||||
},
|
||||
business_line="LAND",
|
||||
land_subtype="跨境整车",
|
||||
)
|
||||
self.assertTrue(got["ok"])
|
||||
self.assertEqual(got["facts"]["车型/数量"], "9米6/1")
|
||||
|
||||
def test_quote_date_defaults(self):
|
||||
got = validate_required_fields(
|
||||
facts={
|
||||
"起运港": "广州",
|
||||
"目的港": "深圳",
|
||||
"品名": "衣服",
|
||||
"体积": "100CBM",
|
||||
"毛重": "50kg",
|
||||
},
|
||||
business_line="LAND",
|
||||
land_subtype="国内运输拼车",
|
||||
)
|
||||
self.assertTrue(got["ok"])
|
||||
self.assertRegex(got["facts"]["报价日期"], r"^\d{4}-\d{2}-\d{2}$")
|
||||
|
||||
def test_land_display_names(self):
|
||||
self.assertEqual(display_name("起运港", "LAND"), "始发站")
|
||||
self.assertEqual(display_name("品名", "LAND"), "货物品名")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user