feat(status): default legacy batches to normal
This commit is contained in:
+114
-1
@@ -122,12 +122,125 @@ class DbTests(TempDirMixin, unittest.TestCase):
|
||||
task = db.get_task(1, conn=conn)
|
||||
self.assertEqual(0, task.cover_reset_count)
|
||||
self.assertIsNone(task.cover_reset_at)
|
||||
self.assertIsNone(task.product_status)
|
||||
self.assertEqual("normal", task.product_status)
|
||||
self.assertEqual(
|
||||
db.LEGACY_PRODUCT_STATUS_DEFAULT_NOTE,
|
||||
task.product_status_note,
|
||||
)
|
||||
self.assertIsNone(task.product_status_at)
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_init_db_defaults_only_pre_feature_active_missing_status_tasks(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
db_path = os.path.join(temp_dir, "cmshopee.db")
|
||||
db.init_db(db_path)
|
||||
batch_ids = {}
|
||||
for index, name in enumerate(
|
||||
(
|
||||
"legacy-null",
|
||||
"legacy-blank",
|
||||
"legacy-unknown",
|
||||
"boundary",
|
||||
"after",
|
||||
"deleted",
|
||||
),
|
||||
start=1,
|
||||
):
|
||||
batch_id = db.create_batch([f"{name}.xlsx"], path=db_path)
|
||||
batch_ids[name] = batch_id
|
||||
db.insert_tasks(
|
||||
batch_id,
|
||||
[
|
||||
{
|
||||
"source_file_abs": os.path.join(temp_dir, f"{name}.xlsx"),
|
||||
"source_sheet": "Sheet1",
|
||||
"source_row": 2,
|
||||
"account_name": "店铺",
|
||||
"alias": "alias",
|
||||
"item_id": str(51100639700 + index),
|
||||
}
|
||||
],
|
||||
path=db_path,
|
||||
)
|
||||
|
||||
conn = db.connect(db_path)
|
||||
try:
|
||||
with conn:
|
||||
conn.execute(
|
||||
"UPDATE batches SET created_at = ? WHERE id IN (?, ?, ?, ?)",
|
||||
(
|
||||
"2026-07-18T16:34:36",
|
||||
batch_ids["legacy-null"],
|
||||
batch_ids["legacy-blank"],
|
||||
batch_ids["legacy-unknown"],
|
||||
batch_ids["deleted"],
|
||||
),
|
||||
)
|
||||
conn.execute(
|
||||
"UPDATE batches SET created_at = ? WHERE id = ?",
|
||||
(db.PRODUCT_STATUS_FEATURE_INTRODUCED_AT, batch_ids["boundary"]),
|
||||
)
|
||||
conn.execute(
|
||||
"UPDATE batches SET created_at = ? WHERE id = ?",
|
||||
("2026-07-18T16:34:38", batch_ids["after"]),
|
||||
)
|
||||
blank_task = db.list_tasks(
|
||||
batch_id=batch_ids["legacy-blank"],
|
||||
conn=conn,
|
||||
)[0]
|
||||
unknown_task = db.list_tasks(
|
||||
batch_id=batch_ids["legacy-unknown"],
|
||||
conn=conn,
|
||||
)[0]
|
||||
conn.execute(
|
||||
"UPDATE tasks SET product_status = ' ' WHERE id = ?",
|
||||
(blank_task.id,),
|
||||
)
|
||||
conn.execute(
|
||||
"UPDATE tasks SET product_status = 'unknown', product_status_note = '已有未知状态' WHERE id = ?",
|
||||
(unknown_task.id,),
|
||||
)
|
||||
conn.execute(
|
||||
"UPDATE batches SET deleted_at = ? WHERE id = ?",
|
||||
("2026-07-19T00:00:00", batch_ids["deleted"]),
|
||||
)
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
db.init_db(db_path)
|
||||
legacy_null = db.list_tasks(batch_id=batch_ids["legacy-null"], path=db_path)[0]
|
||||
legacy_blank = db.list_tasks(batch_id=batch_ids["legacy-blank"], path=db_path)[0]
|
||||
legacy_unknown = db.list_tasks(batch_id=batch_ids["legacy-unknown"], path=db_path)[0]
|
||||
boundary = db.list_tasks(batch_id=batch_ids["boundary"], path=db_path)[0]
|
||||
after = db.list_tasks(batch_id=batch_ids["after"], path=db_path)[0]
|
||||
deleted = db.list_tasks(
|
||||
batch_id=batch_ids["deleted"],
|
||||
path=db_path,
|
||||
include_deleted=True,
|
||||
)[0]
|
||||
|
||||
for task in (legacy_null, legacy_blank):
|
||||
self.assertEqual("normal", task.product_status)
|
||||
self.assertEqual(db.LEGACY_PRODUCT_STATUS_DEFAULT_NOTE, task.product_status_note)
|
||||
self.assertIsNone(task.product_status_at)
|
||||
self.assertEqual("unknown", legacy_unknown.product_status)
|
||||
self.assertEqual("已有未知状态", legacy_unknown.product_status_note)
|
||||
self.assertIsNone(boundary.product_status)
|
||||
self.assertIsNone(after.product_status)
|
||||
self.assertIsNone(deleted.product_status)
|
||||
|
||||
first_updated_at = legacy_null.updated_at
|
||||
db.init_db(db_path)
|
||||
self.assertEqual(
|
||||
first_updated_at,
|
||||
db.get_task(legacy_null.id, path=db_path).updated_at,
|
||||
)
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_account_batch_task_lifecycle(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
db_path = os.path.join(temp_dir, "cmshopee.db")
|
||||
|
||||
Reference in New Issue
Block a user