fix(data): 校验早于副作用,补空行;经验写入 pitfalls
save_table 的两处收尾(用户授权代改): - 后缀校验原先藏在 if/else 分支的 else 里,排在 path.parent.mkdir(...) 之后, 传 sub/x.txt 会先把 sub\ 建出来再抛 ValueError。改成守卫子句,集中在 mkdir 之前, 校验段结束后才产生副作用;此时 else 分支自然消失,用回 if/else 两路分派 - __all__ 与下一个 def 之间补回第二个空行(PEP 8 / E302) 测试: - 新增 test_save_table_validates_before_touching_disk, 断言参数非法时 tmp_path 下一个条目都不留(ValueError 与 TypeError 两条路径) - 40 passed / 44 skipped,两套环境一致;ruff All checks passed 文档: - docs/dev/personal-pitfalls.md 追加条目 5(参数校验排在副作用之后) 与条目 6(把 lint 的"没报错"当成"没问题"),索引表同步加行 - STATUS:io.py 收尾,L0 第 3 项完成;测试计数 40 - CHANGELOG:Fixed 段补两条
This commit is contained in:
1 parent
19f4a15107
commit
6758e81c9d
5 files changed
+61
-9
No files matched your search
@@ -41,6 +41,9 @@
|
||||
- `docs/dev/personal-pitfalls.md`:个人易错点清单,**只追加、不通读**
|
||||
|
||||
### Fixed
|
||||
- `data.save_table` 的后缀校验排在 `path.parent.mkdir(...)` **之后**,传 `.txt` 会先留下一个
|
||||
空目录再抛 `ValueError`。改为**先校验、后副作用**,并加回归测试。
|
||||
- `data/io.py` 里 `__all__` 与下一个 `def` 之间只有 1 个空行(PEP 8 要 2 个)。
|
||||
- `tests/test_data.py` 顶上的**模块级** `pytestmark = pytest.mark.skip(...)` 会连带跳过同文件里
|
||||
已经写好的函数,导致 `load_table` 零覆盖。改为逐条 skip 未实现的算法,并补 8 条 io 测试
|
||||
(编码探测、NA 归一、后缀校验、缺文件报错、往返读写、类型校验)。测试数 31 → **39 passed**。
|
||||
|
||||
Reference in new issue
Block a user