fix: add Windows test coverage

AB
2mo ago
+23-6

Summary

  • run the supported Python test matrix on both Ubuntu and Windows
  • force the byte fixture to LF in Git checkouts so its base64 assertion is platform-stable
  • make proxy environment setup robust to Windows case-insensitive variable names
  • skip tracemalloc leak heuristics on Windows, where runtime and worker allocations make them unstable

Testing

  • uv run --frozen --isolated --all-extras --python 3.9 pytest (502 passed, 297 skipped)
  • uv run --frozen --isolated --all-extras --python 3.14 pytest (502 passed, 297 skipped)
  • uv run --frozen ruff check .
  • uv run --frozen pyright -p .
  • uv run --frozen mypy --platform linux .

Fixes #355


Summary by cubic

Add Windows to the CI test matrix and make tests cross-platform stable. CI previously ran only on Ubuntu; now it runs on Ubuntu and Windows, with fixes for CRLF-sensitive fixtures, Windows proxy env var behavior, and flaky tracemalloc leak checks. Fixes #355.

  • Review notes:
    • CI runs on both ubuntu-latest and windows-latest; bootstrap and test steps run with bash.
    • .gitattributes forces LF for tests/sample_file.txt to keep base64 assertions stable across OSes.
    • Proxy environment test handles case-insensitive names on Windows by clearing both cases and setting HTTPS_PROXY last.
    • Tracemalloc-based leak assertions are skipped on Windows and Python >=3.10 to avoid flaky failures; no runtime behavior changes.