格式:整理主数据批次代码
This commit is contained in:
@@ -379,7 +379,9 @@ class MasterDao:
|
|||||||
return await cls._find(db, BizWarehouse, BizWarehouse.warehouse_code, warehouse_code)
|
return await cls._find(db, BizWarehouse, BizWarehouse.warehouse_code, warehouse_code)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def add_warehouse(cls, db: AsyncSession, warehouse: WarehouseModel, test_batch_id: int | None) -> BizWarehouse:
|
async def add_warehouse(
|
||||||
|
cls, db: AsyncSession, warehouse: WarehouseModel, test_batch_id: int | None
|
||||||
|
) -> BizWarehouse:
|
||||||
return await cls._add(db, BizWarehouse, 'warehouse_id', warehouse, test_batch_id)
|
return await cls._add(db, BizWarehouse, 'warehouse_id', warehouse, test_batch_id)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@@ -203,9 +203,7 @@ class PalletService:
|
|||||||
assert_record_in_scope(record, scope, _ASSIGNMENT_LABELS[resource])
|
assert_record_in_scope(record, scope, _ASSIGNMENT_LABELS[resource])
|
||||||
|
|
||||||
users = await MasterDao.list_assignable_users(db)
|
users = await MasterDao.list_assignable_users(db)
|
||||||
assigned_user_ids = set(
|
assigned_user_ids = set(await getattr(MasterDao, f'list_{resource}_assigned_user_ids')(db, resource_id, scope))
|
||||||
await getattr(MasterDao, f'list_{resource}_assigned_user_ids')(db, resource_id, scope)
|
|
||||||
)
|
|
||||||
return [
|
return [
|
||||||
BusinessUserOptionModel(
|
BusinessUserOptionModel(
|
||||||
user_id=user.user_id,
|
user_id=user.user_id,
|
||||||
|
|||||||
@@ -378,9 +378,7 @@ class TestMasterBatchScopeService(unittest.IsolatedAsyncioTestCase):
|
|||||||
for resource, model in make_models().items():
|
for resource, model in make_models().items():
|
||||||
events: list[str] = []
|
events: list[str] = []
|
||||||
lock_batch = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('lock-batch'))
|
lock_batch = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('lock-batch'))
|
||||||
find_duplicate = AsyncMock(
|
find_duplicate = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('find-duplicate'))
|
||||||
side_effect=lambda *_args, _events=events: _events.append('find-duplicate')
|
|
||||||
)
|
|
||||||
add_record = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('add-record'))
|
add_record = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('add-record'))
|
||||||
parent_method = None
|
parent_method = None
|
||||||
parent_lookup = None
|
parent_lookup = None
|
||||||
@@ -390,18 +388,13 @@ class TestMasterBatchScopeService(unittest.IsolatedAsyncioTestCase):
|
|||||||
parent_method = 'get_site'
|
parent_method = 'get_site'
|
||||||
with self.subTest(resource=resource), ExitStack() as stack:
|
with self.subTest(resource=resource), ExitStack() as stack:
|
||||||
self.db.reset_mock()
|
self.db.reset_mock()
|
||||||
stack.enter_context(
|
stack.enter_context(patch.object(TestBatchAccessService, 'lock_active_batch', new=lock_batch))
|
||||||
patch.object(TestBatchAccessService, 'lock_active_batch', new=lock_batch)
|
stack.enter_context(patch.object(MasterDao, f'find_{resource}_by_code', new=find_duplicate))
|
||||||
)
|
|
||||||
stack.enter_context(
|
|
||||||
patch.object(MasterDao, f'find_{resource}_by_code', new=find_duplicate)
|
|
||||||
)
|
|
||||||
stack.enter_context(patch.object(MasterDao, f'add_{resource}', new=add_record))
|
stack.enter_context(patch.object(MasterDao, f'add_{resource}', new=add_record))
|
||||||
if parent_method is not None:
|
if parent_method is not None:
|
||||||
parent_lookup = AsyncMock(
|
parent_lookup = AsyncMock(
|
||||||
side_effect=lambda *_args, _events=events: (
|
side_effect=lambda *_args, _events=events: (
|
||||||
_events.append('get-parent')
|
_events.append('get-parent') or SimpleNamespace(status='0', test_batch_id=9)
|
||||||
or SimpleNamespace(status='0', test_batch_id=9)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
stack.enter_context(patch.object(MasterDao, parent_method, new=parent_lookup))
|
stack.enter_context(patch.object(MasterDao, parent_method, new=parent_lookup))
|
||||||
@@ -430,14 +423,10 @@ class TestMasterBatchScopeService(unittest.IsolatedAsyncioTestCase):
|
|||||||
_events.append('get-current') or _current
|
_events.append('get-current') or _current
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
update_record = AsyncMock(
|
update_record = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('update-record'))
|
||||||
side_effect=lambda *_args, _events=events: _events.append('update-record')
|
|
||||||
)
|
|
||||||
with self.subTest(resource=resource), ExitStack() as stack:
|
with self.subTest(resource=resource), ExitStack() as stack:
|
||||||
self.db.reset_mock()
|
self.db.reset_mock()
|
||||||
stack.enter_context(
|
stack.enter_context(patch.object(TestBatchAccessService, 'lock_active_batch', new=lock_batch))
|
||||||
patch.object(TestBatchAccessService, 'lock_active_batch', new=lock_batch)
|
|
||||||
)
|
|
||||||
stack.enter_context(patch.object(MasterDao, f'get_{resource}', new=get_current))
|
stack.enter_context(patch.object(MasterDao, f'get_{resource}', new=get_current))
|
||||||
stack.enter_context(
|
stack.enter_context(
|
||||||
patch.object(MasterDao, f'find_{resource}_by_code', new=AsyncMock(return_value=current))
|
patch.object(MasterDao, f'find_{resource}_by_code', new=AsyncMock(return_value=current))
|
||||||
@@ -528,16 +517,12 @@ class TestMasterBatchScopeService(unittest.IsolatedAsyncioTestCase):
|
|||||||
)
|
)
|
||||||
for resource, parent_method, scope, parent_batch_id in cases:
|
for resource, parent_method, scope, parent_batch_id in cases:
|
||||||
with self.subTest(resource=resource, scope=scope, parent_batch_id=parent_batch_id), ExitStack() as stack:
|
with self.subTest(resource=resource, scope=scope, parent_batch_id=parent_batch_id), ExitStack() as stack:
|
||||||
stack.enter_context(
|
stack.enter_context(patch.object(TestBatchAccessService, 'lock_active_batch', new=AsyncMock()))
|
||||||
patch.object(TestBatchAccessService, 'lock_active_batch', new=AsyncMock())
|
|
||||||
)
|
|
||||||
stack.enter_context(
|
stack.enter_context(
|
||||||
patch.object(
|
patch.object(
|
||||||
MasterDao,
|
MasterDao,
|
||||||
parent_method,
|
parent_method,
|
||||||
new=AsyncMock(
|
new=AsyncMock(return_value=SimpleNamespace(status='0', test_batch_id=parent_batch_id)),
|
||||||
return_value=SimpleNamespace(status='0', test_batch_id=parent_batch_id)
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
stack.enter_context(
|
stack.enter_context(
|
||||||
@@ -609,9 +594,7 @@ class TestMasterBatchScopeService(unittest.IsolatedAsyncioTestCase):
|
|||||||
patch.object(
|
patch.object(
|
||||||
MasterDao,
|
MasterDao,
|
||||||
'get_strain',
|
'get_strain',
|
||||||
new=AsyncMock(
|
new=AsyncMock(return_value=SimpleNamespace(strain_id=7, test_batch_id=None)),
|
||||||
return_value=SimpleNamespace(strain_id=7, test_batch_id=None)
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
stack.enter_context(
|
stack.enter_context(
|
||||||
@@ -873,6 +856,7 @@ class TestMasterDao(unittest.IsolatedAsyncioTestCase):
|
|||||||
self.assertNotIn('create_time', update_sql)
|
self.assertNotIn('create_time', update_sql)
|
||||||
self.db.commit.assert_not_awaited()
|
self.db.commit.assert_not_awaited()
|
||||||
|
|
||||||
|
|
||||||
class TestMasterDaoBatchScope(unittest.IsolatedAsyncioTestCase):
|
class TestMasterDaoBatchScope(unittest.IsolatedAsyncioTestCase):
|
||||||
TABLES = {
|
TABLES = {
|
||||||
'strain': ('biz_strain', 'strain_id'),
|
'strain': ('biz_strain', 'strain_id'),
|
||||||
|
|||||||
@@ -1106,16 +1106,11 @@ class TestPalletBatchScopeService(unittest.IsolatedAsyncioTestCase):
|
|||||||
lock_batch = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('lock-batch'))
|
lock_batch = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('lock-batch'))
|
||||||
get_resource = AsyncMock(
|
get_resource = AsyncMock(
|
||||||
side_effect=lambda *_args, _events=events, **_kwargs: (
|
side_effect=lambda *_args, _events=events, **_kwargs: (
|
||||||
_events.append('get-resource')
|
_events.append('get-resource') or SimpleNamespace(test_batch_id=9)
|
||||||
or SimpleNamespace(test_batch_id=9)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
list_users = AsyncMock(
|
list_users = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('list-users') or [])
|
||||||
side_effect=lambda *_args, _events=events: _events.append('list-users') or []
|
replace_users = AsyncMock(side_effect=lambda *_args, _events=events: _events.append('replace-users'))
|
||||||
)
|
|
||||||
replace_users = AsyncMock(
|
|
||||||
side_effect=lambda *_args, _events=events: _events.append('replace-users')
|
|
||||||
)
|
|
||||||
with (
|
with (
|
||||||
self.subTest(resource=resource, operation='write'),
|
self.subTest(resource=resource, operation='write'),
|
||||||
patch.object(TestBatchAccessService, 'lock_active_batch', new=lock_batch),
|
patch.object(TestBatchAccessService, 'lock_active_batch', new=lock_batch),
|
||||||
|
|||||||
Reference in New Issue
Block a user