feat(apply): filter updates by product status
This commit is contained in:
@@ -6689,6 +6689,10 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
)
|
||||
db.mark_failed(tasks_a[2].id, "apply", "更新失败", path=cfg["db_path"])
|
||||
db.set_applied(tasks_b[0].id, True, path=cfg["db_path"])
|
||||
db.set_product_status(tasks_a[0].id, "normal", path=cfg["db_path"])
|
||||
db.set_product_status(tasks_a[1].id, "unlisted", path=cfg["db_path"])
|
||||
db.set_product_status(tasks_a[2].id, "reviewing", path=cfg["db_path"])
|
||||
db.set_product_status(tasks_b[0].id, "normal", path=cfg["db_path"])
|
||||
|
||||
tab = ApplyTab(config=cfg)
|
||||
self.addCleanup(tab.close)
|
||||
@@ -6704,6 +6708,17 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
[tab.update_mode_combo.itemText(index) for index in range(tab.update_mode_combo.count())],
|
||||
)
|
||||
self.assertEqual("applyItemFilter", tab.item_filter.objectName())
|
||||
self.assertEqual("applyProductStatusFilter", tab.product_status_filter.objectName())
|
||||
self.assertEqual(
|
||||
["全部商品状态", "架上商品", "未上架", "审核中", "状态未知", "待检测"],
|
||||
[
|
||||
tab.product_status_filter.itemText(index)
|
||||
for index in range(tab.product_status_filter.count())
|
||||
],
|
||||
)
|
||||
label_texts = [label.text() for label in tab.findChildren(QLabel)]
|
||||
self.assertIn("商品状态", label_texts)
|
||||
self.assertIn("更新状态", label_texts)
|
||||
self.assertEqual("停止", tab.stop_update_button.text())
|
||||
self.assertEqual("重置更新状态", tab.reset_update_button.text())
|
||||
self.assertTrue(tab.reset_update_button.isHidden())
|
||||
@@ -6725,6 +6740,24 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assert_foreground(tab.model, 0, 5, gui.COLOR_PENDING)
|
||||
self.assertEqual("任务 2/4 条", tab.summary_label.text())
|
||||
|
||||
tab.product_status_filter.setCurrentIndex(
|
||||
tab.product_status_filter.findData("normal")
|
||||
)
|
||||
self.assertEqual(1, tab.model.rowCount())
|
||||
self.assertEqual("51100639510", tab.model.index(0, 1).data())
|
||||
tab.product_status_filter.setCurrentIndex(
|
||||
tab.product_status_filter.findData("unlisted")
|
||||
)
|
||||
self.assertEqual(1, tab.model.rowCount())
|
||||
self.assertEqual("51100639511", tab.model.index(0, 1).data())
|
||||
with mock.patch("app.gui.QMessageBox.warning") as warning, mock.patch(
|
||||
"app.gui.run_worker"
|
||||
) as run_worker:
|
||||
tab.preview_update()
|
||||
self.assertEqual("商品状态不允许更新", warning.call_args[0][1])
|
||||
run_worker.assert_not_called()
|
||||
tab.product_status_filter.setCurrentIndex(tab.product_status_filter.findData("all"))
|
||||
|
||||
tab.status_filter.setCurrentIndex(tab.status_filter.findData("failed"))
|
||||
self.assertEqual(1, tab.model.rowCount())
|
||||
self.assertEqual("失败", tab.model.index(0, 5).data())
|
||||
@@ -6758,6 +6791,14 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
"商品ID:51100639512",
|
||||
tab._confirmation_message(list(tab.model.tasks)),
|
||||
)
|
||||
self.assertIn(
|
||||
"商品状态:全部商品状态",
|
||||
tab._confirmation_message(list(tab.model.tasks)),
|
||||
)
|
||||
self.assertIn(
|
||||
"更新状态:全部状态",
|
||||
tab._confirmation_message(list(tab.model.tasks)),
|
||||
)
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user