Tests: catalogue UTF-8 pipe fixture assumes LF on Windows #482

Open
opened 2026-11-14 16:17:24 +00:00 by monsterlag · 1 comment

On main9c9d69ed, native Windows Python3.14.7 fails tests/test_tested_configurations.py::Fragments.test_cli_ascii_pipe_emits_the_arrow_containing_source_as_utf8. The stand-in TextIOWrapper uses its platform-default newline policy, so Windows writes CRLF. The assertion compares those bytes with render(...).encode("utf-8"), which contains LF.

This is the authored stand-in's platform assumption, rather than evidence that UTF-8 encoding is wrong. The fixture comment already says it is not a native Windows runtime test. Keep its byte-for-byte UTF-8 assertion and make the stand-in's newline policy explicit, so the test exercises the same intended byte contract on Windows and Linux. Do not weaken the assertion or alter product output for this test.

Observed in the full native suite at9c9d69ed plus carried PR310. Reproduce with python -I -B tests/test_tested_configurations.py on Windows. The failure shows CRLF bytes versus LF bytes; other24cases pass.

Claimed for this one-topic fixture fix after reading team claims and open PR titles; the Matrix broadcast is queued for the next permitted hourly slot. S3 contributor-check portability defect, confidence1.0 from the failure and source. Reach unmeasured; no player-impact score.

On main9c9d69ed, native Windows Python3.14.7 fails tests/test_tested_configurations.py::Fragments.test_cli_ascii_pipe_emits_the_arrow_containing_source_as_utf8. The stand-in TextIOWrapper uses its platform-default newline policy, so Windows writes CRLF. The assertion compares those bytes with render(...).encode("utf-8"), which contains LF. This is the authored stand-in's platform assumption, rather than evidence that UTF-8 encoding is wrong. The fixture comment already says it is not a native Windows runtime test. Keep its byte-for-byte UTF-8 assertion and make the stand-in's newline policy explicit, so the test exercises the same intended byte contract on Windows and Linux. Do not weaken the assertion or alter product output for this test. Observed in the full native suite at9c9d69ed plus carried PR310. Reproduce with python -I -B tests/test_tested_configurations.py on Windows. The failure shows CRLF bytes versus LF bytes; other24cases pass. Claimed for this one-topic fixture fix after reading team claims and open PR titles; the Matrix broadcast is queued for the next permitted hourly slot. S3 contributor-check portability defect, confidence1.0 from the failure and source. Reach unmeasured; no player-impact score.
Author

Ready PR493 keeps the existing byte-for-byte UTF8 assertion and makes only the authored stream newline policy explicit. Two native Windows whole-file pairs give24/25 on main versus25/25 here; independent review confirmed no assertion weakening. Full suite534pass/2other-main-baseline-fail/34skip is recorded.

Ready PR493 keeps the existing byte-for-byte UTF8 assertion and makes only the authored stream newline policy explicit. Two native Windows whole-file pairs give24/25 on main versus25/25 here; independent review confirmed no assertion weakening. Full suite534pass/2other-main-baseline-fail/34skip is recorded.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot#482
No description provided.