功能:实现托盘两阶段退回
This commit is contained in:
@@ -123,7 +123,7 @@ class TestDaoPublicContract(unittest.TestCase):
|
||||
expected = {
|
||||
'get_inbound_for_update': ('db', 'inbound_id', 'warehouse_ids'),
|
||||
'get_shipment_for_update': ('db', 'shipment_id', 'warehouse_ids', 'site_ids'),
|
||||
'get_return_for_update': ('db', 'return_id'),
|
||||
'get_return_for_update': ('db', 'return_id', 'site_ids', 'warehouse_ids'),
|
||||
'get_active_filling_for_update': ('db', 'filling_id'),
|
||||
'get_inbound_by_confirm_idempotency_key': ('db', 'idempotency_key'),
|
||||
'get_shipment_by_confirm_idempotency_key': (
|
||||
@@ -134,8 +134,18 @@ class TestDaoPublicContract(unittest.TestCase):
|
||||
),
|
||||
'get_filling_by_idempotency_key': ('db', 'idempotency_key', 'warehouse_ids'),
|
||||
'get_usage_by_idempotency_key': ('db', 'idempotency_key', 'site_ids'),
|
||||
'get_return_by_request_idempotency_key': ('db', 'idempotency_key'),
|
||||
'get_return_by_confirm_idempotency_key': ('db', 'idempotency_key'),
|
||||
'get_return_by_request_idempotency_key': (
|
||||
'db',
|
||||
'idempotency_key',
|
||||
'site_ids',
|
||||
'warehouse_ids',
|
||||
),
|
||||
'get_return_by_confirm_idempotency_key': (
|
||||
'db',
|
||||
'idempotency_key',
|
||||
'site_ids',
|
||||
'warehouse_ids',
|
||||
),
|
||||
'get_inbound_by_id': ('db', 'inbound_id', 'warehouse_ids'),
|
||||
'add_inbound': ('db', 'inbound'),
|
||||
'update_inbound': ('db', 'inbound'),
|
||||
@@ -151,7 +161,7 @@ class TestDaoPublicContract(unittest.TestCase):
|
||||
'replace_shipment_items': ('db', 'shipment_id', 'items'),
|
||||
'get_usage_by_id': ('db', 'usage_id', 'site_ids'),
|
||||
'add_usage_record': ('db', 'usage'),
|
||||
'get_return_by_id': ('db', 'return_id'),
|
||||
'get_return_by_id': ('db', 'return_id', 'site_ids', 'warehouse_ids'),
|
||||
'add_return_order': ('db', 'return_order'),
|
||||
'update_return_order': ('db', 'return_order'),
|
||||
'add_return_items': ('db', 'items'),
|
||||
@@ -228,8 +238,22 @@ class TestDaoPublicContract(unittest.TestCase):
|
||||
self.assertNotIn('for_update', inspect.signature(OperationDao._get_by_key).parameters)
|
||||
|
||||
return_list_signature = inspect.signature(OperationDao.get_return_list)
|
||||
self.assertEqual(('db', 'query_object', 'is_page'), tuple(return_list_signature.parameters))
|
||||
self.assertEqual(
|
||||
('db', 'query_object', 'is_page', 'site_ids', 'warehouse_ids'),
|
||||
tuple(return_list_signature.parameters),
|
||||
)
|
||||
self.assertIs(True, return_list_signature.parameters['is_page'].default)
|
||||
for method_name in (
|
||||
'get_return_for_update',
|
||||
'get_return_by_request_idempotency_key',
|
||||
'get_return_by_confirm_idempotency_key',
|
||||
'get_return_by_id',
|
||||
'get_return_list',
|
||||
):
|
||||
with self.subTest(method=method_name):
|
||||
signature = inspect.signature(getattr(OperationDao, method_name))
|
||||
self.assertIsNone(signature.parameters['site_ids'].default)
|
||||
self.assertIsNone(signature.parameters['warehouse_ids'].default)
|
||||
|
||||
def test_dao_source_never_controls_transaction_boundary(self) -> None:
|
||||
for module in (inventory_dao_module, operation_dao_module):
|
||||
@@ -423,13 +447,6 @@ class TestOperationDaoReads(unittest.IsolatedAsyncioTestCase):
|
||||
|
||||
async def test_for_update_queries_target_primary_keys_and_lock_rows(self) -> None:
|
||||
cases = (
|
||||
(
|
||||
OperationDao.get_return_for_update,
|
||||
BizReturnOrder,
|
||||
'return_id',
|
||||
13,
|
||||
(),
|
||||
),
|
||||
(
|
||||
OperationDao.get_active_filling_for_update,
|
||||
BizFillingRecord,
|
||||
|
||||
Reference in New Issue
Block a user