T-578 更新失败关闭新建商品页
This commit is contained in:
+104
-1
@@ -780,12 +780,65 @@ class EditorLoginTests(unittest.TestCase):
|
||||
sleep.assert_called_once_with(2)
|
||||
close_tab.assert_called_once_with("target-new", host="127.0.0.1:9222")
|
||||
|
||||
def test_apply_task_keeps_product_tab_after_failed_update(self):
|
||||
def test_apply_task_keeps_auto_created_product_tab_after_success_when_disabled(self):
|
||||
cdp = FakeProductCDP("ws-new")
|
||||
cdp.target_id = "target-new"
|
||||
cdp.created_by_app = True
|
||||
cdp.cdp_host = "127.0.0.1:9222"
|
||||
|
||||
with mock.patch("app.editor.open_product", return_value=cdp), mock.patch(
|
||||
"app.editor.change_title",
|
||||
return_value={"ok": True, "reason": None},
|
||||
), mock.patch(
|
||||
"app.editor.click_update",
|
||||
return_value={"clicked": True, "reason": None},
|
||||
), mock.patch("app.editor.close_tab") as close_tab, mock.patch(
|
||||
"app.editor.time.sleep"
|
||||
) as sleep:
|
||||
result = editor.apply_task(
|
||||
{"debug_port": 9222},
|
||||
{"item_id": "51100639510", "new_title": "新标题"},
|
||||
close_success_tab=False,
|
||||
)
|
||||
|
||||
self.assertTrue(result["committed"])
|
||||
self.assertTrue(cdp.closed)
|
||||
close_tab.assert_not_called()
|
||||
sleep.assert_not_called()
|
||||
|
||||
def test_apply_task_closes_auto_created_product_tab_after_failed_update(self):
|
||||
cdp = FakeProductCDP("ws-new")
|
||||
cdp.target_id = "target-new"
|
||||
cdp.created_by_app = True
|
||||
cdp.cdp_host = "127.0.0.1:9222"
|
||||
|
||||
with mock.patch("app.editor.open_product", return_value=cdp), mock.patch(
|
||||
"app.editor.change_title",
|
||||
return_value={"ok": True, "reason": None},
|
||||
), mock.patch(
|
||||
"app.editor.click_update",
|
||||
return_value={"clicked": False, "reason": "UPDATE_DISABLED"},
|
||||
), mock.patch("app.editor.close_tab") as close_tab, mock.patch(
|
||||
"app.editor.time.sleep"
|
||||
) as sleep:
|
||||
result = editor.apply_task(
|
||||
{"debug_port": 9222},
|
||||
{"item_id": "51100639510", "new_title": "新标题"},
|
||||
close_success_tab=False,
|
||||
)
|
||||
|
||||
self.assertFalse(result["committed"])
|
||||
self.assertEqual("UPDATE_DISABLED", result["error"])
|
||||
self.assertTrue(cdp.closed)
|
||||
close_tab.assert_called_once_with("target-new", host="127.0.0.1:9222")
|
||||
sleep.assert_not_called()
|
||||
|
||||
def test_apply_task_keeps_reused_product_tab_after_failed_update(self):
|
||||
cdp = FakeProductCDP("ws-existing")
|
||||
cdp.target_id = "target-existing"
|
||||
cdp.created_by_app = False
|
||||
cdp.cdp_host = "127.0.0.1:9222"
|
||||
|
||||
with mock.patch("app.editor.open_product", return_value=cdp), mock.patch(
|
||||
"app.editor.change_title",
|
||||
return_value={"ok": True, "reason": None},
|
||||
@@ -807,6 +860,56 @@ class EditorLoginTests(unittest.TestCase):
|
||||
close_tab.assert_not_called()
|
||||
sleep.assert_not_called()
|
||||
|
||||
def test_apply_task_closes_auto_created_product_tab_after_cover_failure(self):
|
||||
cdp = FakeProductCDP("ws-new")
|
||||
cdp.target_id = "target-new"
|
||||
cdp.created_by_app = True
|
||||
cdp.cdp_host = "127.0.0.1:9222"
|
||||
|
||||
with mock.patch("app.editor.open_product", return_value=cdp), mock.patch(
|
||||
"app.editor.replace_cover",
|
||||
return_value={"ok": False, "reason": "UPLOAD_TIMEOUT"},
|
||||
), mock.patch("app.editor.click_update") as click_update, mock.patch(
|
||||
"app.editor.close_tab",
|
||||
return_value=True,
|
||||
) as close_tab, mock.patch("app.editor.time.sleep") as sleep:
|
||||
result = editor.apply_task(
|
||||
{"debug_port": 9222},
|
||||
{"item_id": "51100639510", "new_cover_path": "new.jpg"},
|
||||
close_success_tab=False,
|
||||
)
|
||||
|
||||
self.assertFalse(result["committed"])
|
||||
self.assertIn("新封面上传超时", result["error"])
|
||||
click_update.assert_not_called()
|
||||
self.assertTrue(cdp.closed)
|
||||
close_tab.assert_called_once_with("target-new", host="127.0.0.1:9222")
|
||||
sleep.assert_not_called()
|
||||
|
||||
def test_apply_task_closes_auto_created_product_tab_after_exception(self):
|
||||
cdp = FakeProductCDP("ws-new")
|
||||
cdp.target_id = "target-new"
|
||||
cdp.created_by_app = True
|
||||
cdp.cdp_host = "127.0.0.1:9222"
|
||||
|
||||
with mock.patch("app.editor.open_product", return_value=cdp), mock.patch(
|
||||
"app.editor.change_title",
|
||||
side_effect=RuntimeError("写标题失败"),
|
||||
), mock.patch("app.editor.close_tab", return_value=True) as close_tab, mock.patch(
|
||||
"app.editor.time.sleep"
|
||||
) as sleep:
|
||||
result = editor.apply_task(
|
||||
{"debug_port": 9222},
|
||||
{"item_id": "51100639510", "new_title": "新标题"},
|
||||
close_success_tab=False,
|
||||
)
|
||||
|
||||
self.assertFalse(result["committed"])
|
||||
self.assertEqual("写标题失败", result["error"])
|
||||
self.assertTrue(cdp.closed)
|
||||
close_tab.assert_called_once_with("target-new", host="127.0.0.1:9222")
|
||||
sleep.assert_not_called()
|
||||
|
||||
def test_apply_task_passes_old_cover_backup_to_replace_cover(self):
|
||||
cdp = FakeProductCDP("ws-new")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user