feat: 重新执行支持当前行兜底 (#176)

This commit is contained in:
chengma
2026-08-12 10:23:27 +08:00
parent 62da4fdef4
commit bb7a5023b5
4 changed files with 97 additions and 18 deletions
+63
View File
@@ -232,6 +232,69 @@ class TaskTableModelCheckTests(unittest.TestCase):
self.assertEqual(received, [("TASK-1", "TASK-2")])
page.deleteLater()
def test_rerun_uses_current_row_when_no_task_is_checked(self):
page = PDDTaskPage()
page.set_tasks(
[TaskRow("COL-1", "采集"), TaskRow("PUR-1", "采购")]
)
collect_requests = []
purchase_requests = []
page.rerunRequested.connect(collect_requests.append)
page.purchaseRerunRequested.connect(purchase_requests.append)
page.taskTable.setCurrentIndex(page.taskModel.index(0, TITLE_COLUMN))
page.rerunButton.click()
page.taskTable.setCurrentIndex(page.taskModel.index(1, TITLE_COLUMN))
page.purchaseRerunButton.click()
self.assertEqual(collect_requests, [("COL-1",)])
self.assertEqual(purchase_requests, [("PUR-1",)])
self.assertEqual(page.taskModel.checked_task_ids(), ())
page.deleteLater()
def test_rerun_checked_tasks_take_priority_over_current_row(self):
page = PDDTaskPage()
page.set_tasks(
[TaskRow("COL-1", "采集"), TaskRow("COL-2", "采集")]
)
received = []
page.rerunRequested.connect(received.append)
page.taskTable.setCurrentIndex(page.taskModel.index(0, TITLE_COLUMN))
page.taskModel.setData(
page.taskModel.index(1, CHECK_COLUMN),
Qt.Checked,
Qt.CheckStateRole,
)
page.rerunButton.click()
self.assertEqual(received, [("COL-2",)])
page.deleteLater()
def test_rerun_without_checked_or_current_task_shows_guidance(self):
page = PDDTaskPage()
page.set_tasks([TaskRow("COL-1", "采集")])
page.taskTable.clearSelection()
page.taskTable.setCurrentIndex(page.taskModel.index(-1, -1))
page.rerunButton.click()
self.assertEqual(
page.statusLabel.text(), "请勾选任务或单击选择一行"
)
page.deleteLater()
def test_resubmit_and_remove_still_require_checked_tasks(self):
page = PDDTaskPage()
page.set_tasks([TaskRow("TASK-1", "采集")])
page.taskTable.setCurrentIndex(page.taskModel.index(0, TITLE_COLUMN))
self.assertTrue(page.rerunButton.isEnabled())
self.assertTrue(page.purchaseRerunButton.isEnabled())
self.assertFalse(page.resubmitButton.isEnabled())
self.assertFalse(page.removeButton.isEnabled())
page.deleteLater()
def test_auto_fetch_text_and_keyword_width(self):
page = PDDTaskPage()