8cff6b35f961f42f006b34bef64c16a8536cd98c
问题:本机 `%TEMP%\pytest-of-Windows` 被权限更高的会话建过,当前用户无权写入, 于是所有用 `tmp_path` 的用例在 setup 阶段批量 ERROR(WinError 5)——实测 33 个, 散布在 offsite 附件预览、通知发送、promotion、worker 等处。这类噪声会让 "到底哪里坏了"完全看不出来(同事这批新用例首次把它暴露出来)。 修法:在 tests/conftest.py 覆盖 `tmp_path`,把根目录改到仓库内 `.workdir/pytest-tmp` (已在 .gitignore)。语义不变——每个用例仍拿到一个**新建的空目录**(残留目录会污染断言)。 只覆盖 `tmp_path` 而不动 `tmp_path_factory`:后者是 pytest 私有构造,参数随版本变化 (实测直接实例化 `TempPathFactory(...)` 会 TypeError),而本仓库用例只用 `tmp_path`。 同时把 pyproject.toml 里那条 `basetemp = ...` 删掉:pytest **只在命令行认 basetemp**, 写在 ini 里会被静默忽略(实测无效),留着会让人误以为已配好。改为注释指向 conftest。 效果:不带任何参数 `pytest -q` 从「3 failed + 33 errors」变为「3 failed,0 error」。
Description
番茄炒蛋组
18 MiB
Languages
Python
99.9%