refactor: P4b position 标杆模块服务层改造 + 单元测试
【服务层新范式】system/position 作为标杆: - service 函数改「入参数据/出参数据」:get_position_page(params)->dict、 add_position(data)/update_position(data)/update_position_status(data)->None、 delete_positions(ids)->int - 业务失败 raise BizError(不再 return R.failed),由全局处理器转 R.failed - get_info 委托 PositionRepository(新增 repository.py,继承 BaseRepository) - router 负责取参(query args / parse_request_body)与 R 包装 【单元测试】tests/unit/test_modules/test_position_service.py: - 纯函数(_build_page_data)、BizError 契约(空数据/空ID/无效ID)、 mock 批量删除(ID 解析验证)——无需数据库即可测试 - conftest flask_app fixture 增加 SECRET_KEY + 关闭 CSRF 【验收】12 passed(5 响应 + 7 position);应用启动;flake8 零告警; position 路由 401 拦截正常。服务层测试化范式验证可行 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude
parent
a6e094378c
commit
0cfaf8c894
+11
-2
@@ -27,5 +27,14 @@ if ROOT not in sys.path:
|
||||
|
||||
@pytest.fixture
|
||||
def flask_app():
|
||||
"""最小 Flask 应用实例(无数据库/中间件,仅提供应用上下文)。"""
|
||||
return Flask(__name__)
|
||||
"""
|
||||
最小 Flask 应用实例(无数据库/中间件,仅提供应用上下文)。
|
||||
|
||||
配置项说明:
|
||||
- SECRET_KEY: FlaskForm CSRF 校验需要
|
||||
- WTF_CSRF_ENABLED=False: 单元测试关闭 CSRF
|
||||
"""
|
||||
app = Flask(__name__)
|
||||
app.config['SECRET_KEY'] = 'test-secret-key'
|
||||
app.config['WTF_CSRF_ENABLED'] = False
|
||||
return app
|
||||
|
||||
Reference in New Issue
Block a user