Skip to content

Make byte fixtures checkout-stable and run tests on Windows CI #355

Description

@abhinavkr26104

Description

A normal Windows checkout with core.autocrlf=true changes tests/sample_file.txt from LF to CRLF, but the base64 transform test asserts the LF byte sequence. This makes both sync and async variants fail on a supported OS.

The CI workflow only runs tests on Ubuntu, so this Windows-specific failure is not detected before merge/release.

Reproduction

On Windows:

git config core.autocrlf true
git checkout .
python -m pytest -o addopts="" tests/test_transform.py -k base64_file_input

Observed failures:

# actual bytes include CRLF
SGVsbG8sIHdvcmxkIQ0K

# expected bytes include LF
SGVsbG8sIHdvcmxkIQo=

git ls-files --eol tests/sample_file.txt reports:

i/lf w/crlf attr/ tests/sample_file.txt

There is no .gitattributes rule making this byte fixture checkout-stable.

Code references

  • Byte fixture: tests/sample_file.txt
  • Exact base64 assertion: tests/test_transform.py:419-426
  • Linux-only test runner: .github/workflows/ci.yml:76-94

Expected behavior

Tests should pass on every supported development platform. The fixture should be treated as binary or forced to LF with .gitattributes, and a Windows CI job should cover platform-specific code and checkout behavior.

Actual behavior

The two test_base64_file_input cases fail on a standard Windows Git checkout, while Ubuntu-only CI remains green.

Why this matters

The project declares Windows support and ships a Windows-specific SEA binary. Without Windows CI, both portable test-fixture problems and Windows-only lifecycle/packaging regressions can ship unnoticed.

Prior-art check

I searched open/closed issues and PRs for this fixture, CRLF/autocrlf, Windows pytest failures, and Windows CI and found no existing report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions