feat(product-suite): clarify primary image sorting
This commit is contained in:
@@ -2895,8 +2895,15 @@ class ProductSuiteGuiTests(TempDirMixin, unittest.TestCase):
|
||||
tab.original_list.set_checked_asset_ids([assets[1].id])
|
||||
tab._refresh_originals(state)
|
||||
self.assertEqual([assets[1].id], tab.original_list.checked_asset_ids())
|
||||
self.assertEqual("主图", tab.original_list.item(0).text())
|
||||
self.assertTrue(tab.original_list.item(0).font().bold())
|
||||
self.assertIn("拖动到第一位即可设为主图", tab.original_list.item(0).toolTip())
|
||||
statuses = []
|
||||
tab._status = lambda message, level=None: statuses.append((message, level))
|
||||
tab.reorder_originals([assets[1].id, assets[0].id])
|
||||
self.assertEqual([assets[1].id], tab.original_list.checked_asset_ids())
|
||||
self.assertEqual([assets[1].id, assets[0].id], tab.original_list.asset_ids())
|
||||
self.assertEqual(("已更新商品原图顺序,第一张图片为主图", "success"), statuses[-1])
|
||||
|
||||
tab.add_task(inherit=True)
|
||||
self.assertEqual([], tab.original_list.checked_asset_ids())
|
||||
@@ -3138,6 +3145,10 @@ class ProductSuiteGuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertTrue(state.pull_running())
|
||||
self.assertEqual("停止拉取蝦皮", tab.pull_button.text())
|
||||
self.assertTrue(tab.pull_button.isEnabled())
|
||||
self.assertTrue(tab.original_list.isEnabled())
|
||||
self.assertFalse(tab.original_list.reordering_enabled())
|
||||
self.assertFalse(tab.original_list.dragEnabled())
|
||||
self.assertIn("完成后可调整图片顺序", tab.original_list.toolTip())
|
||||
worker = state.pull_worker
|
||||
|
||||
with mock.patch.object(tab, "_pull_stop_action", return_value="continue"):
|
||||
@@ -3163,6 +3174,40 @@ class ProductSuiteGuiTests(TempDirMixin, unittest.TestCase):
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_pull_locks_original_reordering_without_changing_saved_order(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
config = self._config(temp_dir)
|
||||
project, assets = self._create_project_with_assets(temp_dir, config, 2)
|
||||
tab = ProductSuiteTab(config=config, db_path=config["db_path"])
|
||||
self.addCleanup(tab.close)
|
||||
state = tab._displayed_state
|
||||
state.account_alias = "alias-a"
|
||||
state.item_id = project.item_id
|
||||
state.project_id = project.id
|
||||
state.project_binding_state = project.binding_state
|
||||
tab._load_state(state)
|
||||
statuses = []
|
||||
tab._status = lambda message, level=None: statuses.append((message, level))
|
||||
|
||||
state.pull_run_token = "pull-in-progress"
|
||||
tab._apply_running_state(state)
|
||||
self.assertTrue(tab.original_list.isEnabled())
|
||||
self.assertFalse(tab.original_list.reordering_enabled())
|
||||
tab.reorder_originals([assets[1].id, assets[0].id])
|
||||
self.assertEqual([assets[0].id, assets[1].id], tab.original_list.asset_ids())
|
||||
self.assertEqual(
|
||||
("正在拉取蝦皮主图,完成后可调整图片顺序", "warning"),
|
||||
statuses[-1],
|
||||
)
|
||||
|
||||
state.pull_run_token = ""
|
||||
tab._apply_running_state(state)
|
||||
self.assertTrue(tab.original_list.reordering_enabled())
|
||||
tab.reorder_originals([assets[1].id, assets[0].id])
|
||||
self.assertEqual([assets[1].id, assets[0].id], tab.original_list.asset_ids())
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_stopping_pull_cancels_only_current_pull_downloads(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
config = self._config(temp_dir)
|
||||
|
||||
Reference in New Issue
Block a user