补充主数据删除能力契约
This commit is contained in:
@@ -81,6 +81,7 @@ MASTER_MODEL_FIELDS = {
|
||||
'update_by',
|
||||
'update_time',
|
||||
'remark',
|
||||
'can_remove',
|
||||
},
|
||||
StrainPageQueryModel: {'page_num', 'page_size', 'strain_code', 'strain_name', 'status'},
|
||||
DeleteStrainModel: {'strain_ids'},
|
||||
@@ -94,6 +95,7 @@ MASTER_MODEL_FIELDS = {
|
||||
'update_by',
|
||||
'update_time',
|
||||
'remark',
|
||||
'can_remove',
|
||||
},
|
||||
CustomerPageQueryModel: {'page_num', 'page_size', 'customer_code', 'customer_name', 'status'},
|
||||
DeleteCustomerModel: {'customer_ids'},
|
||||
@@ -109,6 +111,7 @@ MASTER_MODEL_FIELDS = {
|
||||
'update_by',
|
||||
'update_time',
|
||||
'remark',
|
||||
'can_remove',
|
||||
},
|
||||
SitePageQueryModel: {'page_num', 'page_size', 'customer_id', 'site_code', 'site_name', 'status'},
|
||||
DeleteSiteModel: {'site_ids'},
|
||||
@@ -123,6 +126,7 @@ MASTER_MODEL_FIELDS = {
|
||||
'update_by',
|
||||
'update_time',
|
||||
'remark',
|
||||
'can_remove',
|
||||
},
|
||||
LinePageQueryModel: {'page_num', 'page_size', 'site_id', 'line_code', 'line_name', 'status'},
|
||||
DeleteLineModel: {'line_ids'},
|
||||
@@ -137,6 +141,7 @@ MASTER_MODEL_FIELDS = {
|
||||
'update_by',
|
||||
'update_time',
|
||||
'remark',
|
||||
'can_remove',
|
||||
},
|
||||
WarehousePageQueryModel: {'page_num', 'page_size', 'warehouse_code', 'warehouse_name', 'status'},
|
||||
DeleteWarehouseModel: {'warehouse_ids'},
|
||||
@@ -943,7 +948,6 @@ class BusinessVoContractTest(unittest.TestCase):
|
||||
(DeleteLineModel, {}, 'lineIds'),
|
||||
(DeleteWarehouseModel, {}, 'warehouseIds'),
|
||||
(DeletePalletModel, {}, 'palletIds'),
|
||||
(UserAssignModel, {}, 'userIds'),
|
||||
(InboundCreateModel, {'warehouseId': 1}, 'palletIds'),
|
||||
(InboundUpdateModel, {'inboundId': 1, 'warehouseId': 1}, 'palletIds'),
|
||||
(ShipmentCreateModel, {'sourceWarehouseId': 1, 'targetSiteId': 2}, 'palletIds'),
|
||||
@@ -965,6 +969,16 @@ class BusinessVoContractTest(unittest.TestCase):
|
||||
with self.subTest(model=model_class.__name__, value=invalid_value), self.assertRaises(ValidationError):
|
||||
model_class.model_validate(payload | {field_name: invalid_value})
|
||||
|
||||
def test_user_assignment_allows_empty_and_rejects_invalid_non_empty_ids(self) -> None:
|
||||
try:
|
||||
empty_assignment = UserAssignModel.model_validate({'userIds': []})
|
||||
except ValidationError as exc:
|
||||
self.fail(f'完整替换用户关联必须允许空数组:{exc}')
|
||||
self.assertEqual([], empty_assignment.user_ids)
|
||||
for invalid_value in ([0], [1, 1]):
|
||||
with self.subTest(value=invalid_value), self.assertRaises(ValidationError):
|
||||
UserAssignModel.model_validate({'userIds': invalid_value})
|
||||
|
||||
def test_pallet_edit_forbids_identity_fields(self) -> None:
|
||||
valid_payload = {
|
||||
'palletId': 1,
|
||||
|
||||
Reference in New Issue
Block a user