- The usual culprits: path resolution (`Path.resolve()` canonicalizes Windows 8.3 names and POSIX symlinks), home-directory expansion, env-var casing, filesystem case-sensitivity, text-I/O encoding (Windows defaults to cp1252, so a bare `open()`/`read_text()`/`write_text()` breaks on the first non-ASCII character, and only in Windows CI: pass `encoding="utf-8"`, and when the cycle touched file I/O, run the suite once with `PYTHONWARNDEFAULTENCODING=1` to surface calls ruff's inference-limited `PLW1514` cannot see), and direct execution of a generated script (Windows honors neither the executable bit nor the shebang, dispatching on file extension, so a `chmod +x`'d shebang script a test runs by bare path fails with `WinError 193`: emit a `.cmd` launcher beside a `.py` sidecar on Windows, or invoke the interpreter explicitly).
0 commit comments