完善报价单填表与币种回填,并补齐账号末次登录、角色按钮权限与陆运全线匹配。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -179,15 +179,54 @@ class TestSheetMapParse(unittest.TestCase):
|
||||
"routeRegions": [],
|
||||
"mappingGaps": [],
|
||||
}
|
||||
# 无清单:保守旧优先
|
||||
merged = merge_mapping_prefer_existing(old, new)
|
||||
self.assertEqual(merged["fields"]["quote_no"], "S!B3") # 旧优先
|
||||
self.assertEqual(merged["fields"]["pol"], "S!B5") # 旧保留
|
||||
self.assertEqual(merged["fields"]["pod"], "S!B6") # 新补缺
|
||||
self.assertEqual(merged["fields"]["quote_no"], "S!B3")
|
||||
self.assertEqual(merged["fields"]["pol"], "S!B5")
|
||||
self.assertEqual(merged["fields"]["pod"], "S!B6")
|
||||
ids = [r["id"] for r in merged["feeRegions"]]
|
||||
self.assertEqual(ids[0], "origin_charges")
|
||||
self.assertEqual(merged["feeRegions"][0]["title"], "旧始发港")
|
||||
self.assertIn("ocean_freight", ids)
|
||||
|
||||
def test_merge_replaces_misaligned_quote_no(self) -> None:
|
||||
"""旧 quote_no 落在单选 B3 → 改用新坐标 F3。"""
|
||||
from agent.llm.mode_sheet_map import merge_mapping_prefer_existing
|
||||
|
||||
inventory = [
|
||||
"S!A3 | RFQ No: | A3:A3 | -",
|
||||
"S!B3 | ○ Port to Port / 其它,3工作天回复 | B3:E3 | -",
|
||||
"S!F3 | | F3:G3 | -",
|
||||
]
|
||||
old = {"fields": {"quote_no": "S!B3"}, "feeRegions": [], "routeRegions": []}
|
||||
new = {"fields": {"quote_no": "S!F3"}, "feeRegions": [], "routeRegions": []}
|
||||
merged = merge_mapping_prefer_existing(old, new, cell_inventory=inventory)
|
||||
self.assertEqual(merged["fields"]["quote_no"], "S!F3")
|
||||
|
||||
def test_merge_keeps_aligned_quote_no_when_ai_drifts(self) -> None:
|
||||
"""旧已在 RFQ 旁空格、新一轮漂到远处 → 仍保留旧坐标。"""
|
||||
from agent.llm.mode_sheet_map import merge_mapping_prefer_existing
|
||||
|
||||
inventory = [
|
||||
"S!A3 | RFQ No: | - | -",
|
||||
"S!B3 | | - | -",
|
||||
]
|
||||
old = {"fields": {"quote_no": "S!B3"}, "feeRegions": [], "routeRegions": []}
|
||||
new = {"fields": {"quote_no": "S!Z99"}, "feeRegions": [], "routeRegions": []}
|
||||
merged = merge_mapping_prefer_existing(old, new, cell_inventory=inventory)
|
||||
self.assertEqual(merged["fields"]["quote_no"], "S!B3")
|
||||
|
||||
def test_b3_radio_not_aligned(self) -> None:
|
||||
from agent.llm.mode_sheet_map import _field_mapping_still_aligned
|
||||
|
||||
inventory = [
|
||||
"S!A3 | RFQ No: | - | -",
|
||||
"S!B3 | ○ Port to Port | - | -",
|
||||
"S!F3 | WO202609190002 | - | -",
|
||||
]
|
||||
self.assertFalse(_field_mapping_still_aligned("quote_no", "S!B3", inventory))
|
||||
self.assertTrue(_field_mapping_still_aligned("quote_no", "S!F3", inventory))
|
||||
|
||||
def test_invoke_retries_when_gaps(self) -> None:
|
||||
calls: list[str] = []
|
||||
|
||||
|
||||
Reference in New Issue
Block a user