 DjangoAdmin DevandClaude
|
d45b61d808
|
docs+tests: P8 测试与文档(CHANGELOG/CONTRIBUTING + 补充单测)
- CHANGELOG.md / CONTRIBUTING.md
- 新增 exceptions / case_converter 单元测试
- pytest 12 → 22 passed;全项目 flake8 0
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-07 19:53:01 +08:00 |
|
 DjangoAdmin DevandClaude
|
5504f3f2c6
|
refactor: P7 切尾——删除 application/extensions/utils,WSGI 切 src
【切尾】
- src/app.py:应用工厂(原 application/factory.py)
- src/extensions.py:扩展注册编排(原 extensions/)
- src/wsgi.py:生产 WSGI 入口
- 根 app.py 改为 from src.app import create_app(开发入口保留)
- gunicorn/Docker/compose 指向 src.wsgi:app
- 删除 application/、extensions/、utils/(全部代码已迁入 src/)
【清理】21 个 router 中间件导入改 src.core;修复 level 服务潜在 bug
(utils.load2dict 不存在 → model_to_dict);测试文件 R 导入改 src.core
【里程碑】全项目 flake8 从 P1 基线 154 条 → **0 条**;
12 passed;app.py 与 src.wsgi 双入口均启动
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-07 19:45:28 +08:00 |
|
 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 |
|