修复:补齐测试批次恢复锁定

This commit is contained in:
焦龙言
2026-09-23 09:01:50 +08:00
parent f5df2150d8
commit 97b4dc8508
15 changed files with 212 additions and 16 deletions
@@ -72,7 +72,7 @@ class TestDaoPublicContract(unittest.TestCase):
'get_pallet_by_qr_token': ('db', 'qr_token', 'scope'),
'get_pallets_by_ids': ('db', 'pallet_ids', 'scope'),
'get_event_by_idempotency_key': ('db', 'pallet_id', 'idempotency_key', 'scope'),
'add_event': ('db', 'inventory', 'event'),
'add_event': ('db', 'inventory', 'event', 'scope'),
}
for method_name, parameter_names in expected.items():
with self.subTest(method=method_name):
@@ -401,7 +401,7 @@ class TestInventoryDao(unittest.IsolatedAsyncioTestCase):
self.db.flush.side_effect = assign_event_id
actual = await InventoryDao.add_event(self.db, inventory, event)
actual = await InventoryDao.add_event(self.db, inventory, event, TestBatchScope.formal())
self.assertIs(event, actual)
self.assertEqual(7, event.pallet_id)
@@ -417,6 +417,7 @@ class TestInventoryDao(unittest.IsolatedAsyncioTestCase):
self.assertNotIn('max(', sql.lower())
self.assertIn('biz_pallet_event.event_id = 40', sql)
self.assertIn('biz_pallet_event.pallet_id = 7', sql)
self.assertIn('biz_pallet_event.test_batch_id IS NULL', sql)
self.assertIn('FOR UPDATE', sql)
self.assertNotIn('ORDER BY', sql)
self.assertNotIn('LIMIT', sql)
@@ -429,7 +430,7 @@ class TestInventoryDao(unittest.IsolatedAsyncioTestCase):
inventory = BizPalletInventory(pallet_id=8, last_event_id=None)
event = BizPalletEvent(pallet_id=8, idempotency_key='first-key', event_id=51)
await InventoryDao.add_event(self.db, inventory, event)
await InventoryDao.add_event(self.db, inventory, event, TestBatchScope.formal())
self.assertEqual(1, event.event_seq)
self.assertEqual(51, inventory.last_event_id)
@@ -445,7 +446,7 @@ class TestInventoryDao(unittest.IsolatedAsyncioTestCase):
event = BizPalletEvent(pallet_id=8, idempotency_key='broken-pointer')
with self.assertRaisesRegex(RuntimeError, '托盘库存事件指针不一致'):
await InventoryDao.add_event(self.db, inventory, event)
await InventoryDao.add_event(self.db, inventory, event, TestBatchScope.formal())
self.db.execute.assert_awaited_once()
self.db.add.assert_not_called()