Skip to content

_colorize.can_colorize safety in test_argparse #135237

Open
@tpburns

Description

@tpburns

Bug report

Bug description:

In order to ensure its tests are meaningful even if color is disabled, the TestColorized test object in test_argparse modifies _colorize.can_colorize during setup, but does not subsequently restore it to the original value. As a consequence, the rest of the test session is polluted with colors/color codes even if NO_COLOR=1, or when in a dumb terminal or pipe. By comparison, we can look at the output of a similar setup in test_regrtest that uses mock.patch to only affect the state in that one test.

Given:

export NO_COLOR=1

Expected:

./python -m test test_regrtest -m TestColorized

Image

Polluted visuals:

./python -m test test_argparse test_regrtest -m TestColorized

Image

Polluted text:

./python -m test test_argparse test_regrtest -m TestColorized > OUTPUT.txt
less OUTPUT.txt

Image

CPython versions tested on:

CPython main branch, 3.14

Operating systems tested on:

Linux

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    testsTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions