 DjangoAdmin DevandClaude
|
0cfaf8c894
|
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>
|
2026-08-07 14:42:03 +08:00 |
|
 DjangoAdmin DevandClaude
|
92130ef070
|
chore: P1 验证通过 + 应用工厂抽取(修复循环导入)
- application/factory.py:应用工厂独立成模块,application 包保持轻量
(修复 utils→application.constants 触发全量导入的循环依赖,P2 前置改造)
- app.py 改为 from application.factory import create_app
- tests/conftest.py:新增 flask_app 上下文 fixture
- test_response.py:R.ok/failed 在应用上下文中测试
- .flake8:修复 extend-ignore 行内注释导致 flake8 解析失败
验证:
- pytest 5 passed
- 应用完整构建 OK(MySQL/Redis 就绪)
- flake8 存量基线 154 条(F401×111 / E402×36 / 其余 7)已登记
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-07 12:22:56 +08:00 |
|
 DjangoAdmin DevandClaude
|
8691412ec6
|
chore: P1 工程化工具链
- pyproject.toml:pytest/black/isort/mypy 统一配置
- requirements-dev.txt:测试与代码规范开发依赖
- .flake8 / .editorconfig:PEP8 与编辑器统一
- .pre-commit-config.yaml:提交前钩子
- Makefile:常用命令集
- .env.example:环境变量模板(76 键)
- tests/:pytest 骨架 + R 响应格式冒烟测试
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-07 12:14:51 +08:00 |
|