Have you ever shipped a pytest suite that looked literate on your laptop and then went illiterate on the server? I spent two days chasing a collector crash that never reproduced on my Mac. I had pinned the same CPython minor and the same requirements lock, which made the gap feel insulting. The tests were not flaky in the usual sense, and the assertion logic itself was boringly deterministic. The process died while printing a failure I had decorated with a checkmark. POSIX C locale still owns a lot of minimal Linux images, and it does not care about your typography.
I am writing this as a 48-hour lab notebook, not as telemetry from a private fleet. Treat every command below as a reproduction you can run tonight, not as a claim about your images. If a snippet is a proposal, I label it that way in the heading or the comment. Ready to dump encodings before you dump plugin lists?
Why did a green laptop suite explode on a clean box?
My laptop speaks UTF-8 because the terminal, the locale, and macOS have agreed on that story for years. Many cloud images still boot with LANG=C or LANG=POSIX, so sys.stdout.encoding becomes ANSI_X3.4-1968. That name is a long way of saying ASCII, and pytest then tries to render ✓ or an em dash. The interpreter raises UnicodeEncodeError while it is talking to you, not while it is deciding the assertion. Is that a test failure, or is it a reporter crash wearing a test-shaped coat?






