feat: 展示PDD商品和采购订单信息 (#164)

This commit is contained in:
chengma
2026-08-11 16:46:49 +08:00
parent 24497c55fd
commit 1f48d3a857
9 changed files with 319 additions and 31 deletions
+38
View File
@@ -228,6 +228,44 @@ class TaskRepositoryTests(unittest.TestCase):
self.assertEqual([task.remote_task_id for task in tasks], ["COLLECT-BLACK"])
self.assertEqual(self.repository.count_tasks(filters), 1)
def test_list_and_keyword_search_extract_purchase_order_no_safely(self) -> None:
self.repository.add_claimed_task(
self._task("PURCHASE-ORDER", TaskType.PURCHASE)
)
self.repository.add_claimed_task(self._task("COLLECT-BROKEN"))
connection = open_database(self.db_path)
try:
with connection:
connection.execute(
"UPDATE pdd_tasks SET pdd_data = ? WHERE remote_task_id = ?",
(
'{"purchase":{"order_no":"ORDER-20260811"}}',
"PURCHASE-ORDER",
),
)
connection.execute(
"UPDATE pdd_tasks SET pdd_data = ? WHERE remote_task_id = ?",
("不是有效JSON", "COLLECT-BROKEN"),
)
finally:
connection.close()
tasks = self.repository.list_tasks()
by_id = {task.remote_task_id: task for task in tasks}
searched = self.repository.list_tasks(
TaskFilters(keyword="20260811")
)
self.assertEqual(by_id["PURCHASE-ORDER"].order_no, "ORDER-20260811")
self.assertIsNone(by_id["COLLECT-BROKEN"].order_no)
self.assertEqual(
[task.remote_task_id for task in searched], ["PURCHASE-ORDER"]
)
self.assertEqual(
self.repository.count_tasks(TaskFilters(keyword="ORDER-20260811")),
1,
)
def test_keyword_treats_percent_as_normal_text(self) -> None:
self.repository.add_claimed_task(self._task("TASK-100%", title="百分号"))
self.repository.add_claimed_task(self._task("TASK-OTHER", title="普通商品"))