diff --git a/shierfeng-fastapi-backend/module_business/controller/customer_controller.py b/shierfeng-fastapi-backend/module_business/controller/customer_controller.py index 1407c7e..b4728dd 100644 --- a/shierfeng-fastapi-backend/module_business/controller/customer_controller.py +++ b/shierfeng-fastapi-backend/module_business/controller/customer_controller.py @@ -108,8 +108,8 @@ async def edit_master_customer( @customer_controller.delete( '/{customer_ids}', - summary='删除客户接口', - description='用于删除客户', + summary='兼容旧接口,固定拒绝,请使用测试数据批次清理', + description='兼容旧接口,固定拒绝单条物理删除,请使用测试数据批次清理', response_model=ResponseBaseModel, dependencies=[UserInterfaceAuthDependency('master:customer:remove')], ) diff --git a/shierfeng-fastapi-backend/module_business/controller/line_controller.py b/shierfeng-fastapi-backend/module_business/controller/line_controller.py index f32d592..74bfbd6 100644 --- a/shierfeng-fastapi-backend/module_business/controller/line_controller.py +++ b/shierfeng-fastapi-backend/module_business/controller/line_controller.py @@ -106,8 +106,8 @@ async def edit_master_line( @line_controller.delete( '/{line_ids}', - summary='删除生产线接口', - description='用于删除生产线', + summary='兼容旧接口,固定拒绝,请使用测试数据批次清理', + description='兼容旧接口,固定拒绝单条物理删除,请使用测试数据批次清理', response_model=ResponseBaseModel, dependencies=[UserInterfaceAuthDependency('master:line:remove')], ) diff --git a/shierfeng-fastapi-backend/module_business/controller/pallet_controller.py b/shierfeng-fastapi-backend/module_business/controller/pallet_controller.py index e0504a4..3e4d646 100644 --- a/shierfeng-fastapi-backend/module_business/controller/pallet_controller.py +++ b/shierfeng-fastapi-backend/module_business/controller/pallet_controller.py @@ -120,8 +120,8 @@ async def edit_master_pallet( @pallet_controller.delete( '/{pallet_ids}', - summary='删除托盘接口', - description='用于删除尚未入库且没有流转事件的托盘', + summary='兼容旧接口,固定拒绝,请使用测试数据批次清理', + description='兼容旧接口,固定拒绝单条物理删除,请使用测试数据批次清理', response_model=ResponseBaseModel, dependencies=[UserInterfaceAuthDependency('master:pallet:remove')], ) diff --git a/shierfeng-fastapi-backend/module_business/controller/site_controller.py b/shierfeng-fastapi-backend/module_business/controller/site_controller.py index 0d402d8..c51e865 100644 --- a/shierfeng-fastapi-backend/module_business/controller/site_controller.py +++ b/shierfeng-fastapi-backend/module_business/controller/site_controller.py @@ -158,8 +158,8 @@ async def edit_master_site( @site_controller.delete( '/{site_ids}', - summary='删除客户现场接口', - description='用于删除客户现场', + summary='兼容旧接口,固定拒绝,请使用测试数据批次清理', + description='兼容旧接口,固定拒绝单条物理删除,请使用测试数据批次清理', response_model=ResponseBaseModel, dependencies=[UserInterfaceAuthDependency('master:site:remove')], ) diff --git a/shierfeng-fastapi-backend/module_business/controller/strain_controller.py b/shierfeng-fastapi-backend/module_business/controller/strain_controller.py index 97c03a6..e1cd303 100644 --- a/shierfeng-fastapi-backend/module_business/controller/strain_controller.py +++ b/shierfeng-fastapi-backend/module_business/controller/strain_controller.py @@ -108,8 +108,8 @@ async def edit_master_strain( @strain_controller.delete( '/{strain_ids}', - summary='删除菌种接口', - description='用于删除菌种', + summary='兼容旧接口,固定拒绝,请使用测试数据批次清理', + description='兼容旧接口,固定拒绝单条物理删除,请使用测试数据批次清理', response_model=ResponseBaseModel, dependencies=[UserInterfaceAuthDependency('master:strain:remove')], ) diff --git a/shierfeng-fastapi-backend/module_business/controller/warehouse_controller.py b/shierfeng-fastapi-backend/module_business/controller/warehouse_controller.py index fcab999..28b28af 100644 --- a/shierfeng-fastapi-backend/module_business/controller/warehouse_controller.py +++ b/shierfeng-fastapi-backend/module_business/controller/warehouse_controller.py @@ -163,8 +163,8 @@ async def edit_master_warehouse( @warehouse_controller.delete( '/{warehouse_ids}', - summary='删除仓库接口', - description='用于删除仓库', + summary='兼容旧接口,固定拒绝,请使用测试数据批次清理', + description='兼容旧接口,固定拒绝单条物理删除,请使用测试数据批次清理', response_model=ResponseBaseModel, dependencies=[UserInterfaceAuthDependency('master:warehouse:remove')], ) diff --git a/shierfeng-fastapi-backend/tests/module_business/test_master_service.py b/shierfeng-fastapi-backend/tests/module_business/test_master_service.py index f21c5cf..fbb5f42 100644 --- a/shierfeng-fastapi-backend/tests/module_business/test_master_service.py +++ b/shierfeng-fastapi-backend/tests/module_business/test_master_service.py @@ -965,6 +965,21 @@ class TestMasterControllers(unittest.TestCase): self.assertIn(f'{prefix}/{{{resource}_id}}', schema['paths']) self.assertIn('get', schema['paths'][f'{prefix}/{{{resource}_id}}']) + def test_legacy_delete_openapi_declares_fixed_rejection(self) -> None: + app = FastAPI() + for router in self.ROUTERS.values(): + app.include_router(router) + schema = app.openapi() + + expected_summary = '兼容旧接口,固定拒绝,请使用测试数据批次清理' + expected_description = '兼容旧接口,固定拒绝单条物理删除,请使用测试数据批次清理' + for resource in self.ROUTERS: + with self.subTest(resource=resource): + operation = schema['paths'][f'/master/{resource}/{{{resource}_ids}}']['delete'] + self.assertEqual(expected_summary, operation['summary']) + self.assertEqual(expected_description, operation['description']) + self.assertNotIn('用于删除', operation['description']) + def test_all_twenty_five_permission_dependencies_are_exact(self) -> None: expected_permissions = { (f'/master/{resource}/list', 'GET'): f'master:{resource}:list' for resource in self.ROUTERS diff --git a/shierfeng-fastapi-backend/tests/module_business/test_pallet_service.py b/shierfeng-fastapi-backend/tests/module_business/test_pallet_service.py index 62c4701..01865fd 100644 --- a/shierfeng-fastapi-backend/tests/module_business/test_pallet_service.py +++ b/shierfeng-fastapi-backend/tests/module_business/test_pallet_service.py @@ -1263,6 +1263,21 @@ class TestPalletAndAssignmentControllers(unittest.IsolatedAsyncioTestCase): schema['paths']['/master/pallet/{pallet_id}/qrcode']['get']['responses']['200']['content'], ) + def test_legacy_delete_openapi_declares_fixed_rejection(self) -> None: + app = FastAPI() + for router in self._routers(): + app.include_router(router) + operation = app.openapi()['paths']['/master/pallet/{pallet_ids}']['delete'] + + self.assertEqual('兼容旧接口,固定拒绝,请使用测试数据批次清理', operation['summary']) + self.assertEqual( + '兼容旧接口,固定拒绝单条物理删除,请使用测试数据批次清理', + operation['description'], + ) + self.assertNotIn('用于删除', operation['description']) + self.assertNotIn('尚未入库', operation['description']) + self.assertNotIn('没有流转事件', operation['description']) + def test_route_response_models_are_exact(self) -> None: routes = self._routes() self.assertEqual(