feat: 实现 PDD 任务详情窗口 (#39)
This commit is contained in:
@@ -225,6 +225,65 @@ class PDDTaskPageEventTest(unittest.TestCase):
|
||||
self.assertFalse(page.taskModel.canFetchMore())
|
||||
page.deleteLater()
|
||||
|
||||
def test_detail_signal_opens_one_reusable_non_modal_window(self):
|
||||
self._add_task(1)
|
||||
started = self.repository.start_collect_run("PDD-001", "USB-001")
|
||||
self.repository.save_collect_result(
|
||||
"PDD-001",
|
||||
started.attempt_id,
|
||||
{
|
||||
"goods_id": "1",
|
||||
"title": "测试商品",
|
||||
"dimensions": [
|
||||
{
|
||||
"key": "color",
|
||||
"name": "颜色",
|
||||
"values": [{"text": "黑色", "available": True}],
|
||||
},
|
||||
{
|
||||
"key": "size",
|
||||
"name": "尺码",
|
||||
"values": [{"text": "M", "available": True}],
|
||||
},
|
||||
],
|
||||
"skus": [
|
||||
{
|
||||
"options": {"color": "黑色", "size": "M"},
|
||||
"price_cent": 3990,
|
||||
}
|
||||
],
|
||||
},
|
||||
)
|
||||
page = PDDTaskPage()
|
||||
events = PDDTaskPageEvent(page, self.repository)
|
||||
|
||||
page.detailRequested.emit("PDD-001")
|
||||
self.app.processEvents()
|
||||
first = events._detail_windows["PDD-001"]
|
||||
self.assertTrue(first.isVisible())
|
||||
self.assertFalse(first.isModal())
|
||||
|
||||
page.detailRequested.emit("PDD-001")
|
||||
self.app.processEvents()
|
||||
self.assertIs(events._detail_windows["PDD-001"], first)
|
||||
|
||||
first.close()
|
||||
self.app.processEvents()
|
||||
self.assertNotIn("PDD-001", events._detail_windows)
|
||||
events.shutdown()
|
||||
page.deleteLater()
|
||||
|
||||
def test_missing_detail_does_not_open_empty_window(self):
|
||||
page = PDDTaskPage()
|
||||
events = PDDTaskPageEvent(page, self.repository)
|
||||
|
||||
page.detailRequested.emit("PDD-NOT-FOUND")
|
||||
self.app.processEvents()
|
||||
|
||||
self.assertEqual(events._detail_windows, {})
|
||||
events.shutdown()
|
||||
page.deleteLater()
|
||||
|
||||
def test_summary_to_row_does_not_copy_detail_json(self):
|
||||
summary = TaskSummary(
|
||||
id=1,
|
||||
|
||||
Reference in New Issue
Block a user