Fix handling of the NO_COLOR environment variable to ignore an empty value (#835).

This commit is contained in:
Dan Helfman 2024-03-13 09:35:19 -07:00
parent 8c301ba688
commit f8f6560502
4 changed files with 14 additions and 5 deletions

3
NEWS
View file

@ -1,3 +1,6 @@
1.8.10.dev0
* Fix handling of the NO_COLOR environment variable to ignore an empty value.
1.8.9
* #311: Add custom dump/restore command options for MySQL and MariaDB.
* #811: Add an "access_token" option to the ntfy monitoring hook for authenticating

View file

@ -41,8 +41,7 @@ def should_do_markup(no_color, configs):
if any(config.get('output', {}).get('color') is False for config in configs.values()):
return False
no_color_env = os.environ.get('NO_COLOR', None)
if no_color_env is not None:
if os.environ.get('NO_COLOR', None):
return False
py_colors = os.environ.get('PY_COLORS', None)

View file

@ -1,6 +1,6 @@
from setuptools import find_packages, setup
VERSION = '1.8.9'
VERSION = '1.8.10.dev0'
setup(

View file

@ -116,7 +116,7 @@ def test_should_do_markup_prefers_PY_COLORS_to_interactive_console_value():
)
flexmock(module.os.environ).should_receive('get').with_args('NO_COLOR', None).and_return(None)
flexmock(module).should_receive('to_bool').and_return(True)
flexmock(module).should_receive('interactive_console').and_return(False)
flexmock(module).should_receive('interactive_console').never()
assert module.should_do_markup(no_color=False, configs={}) is True
@ -124,7 +124,6 @@ def test_should_do_markup_prefers_PY_COLORS_to_interactive_console_value():
def test_should_do_markup_prefers_NO_COLOR_to_interactive_console_value():
flexmock(module.os.environ).should_receive('get').with_args('PY_COLORS', None).and_return(None)
flexmock(module.os.environ).should_receive('get').with_args('NO_COLOR', None).and_return('True')
flexmock(module).should_receive('interactive_console').and_return(False)
assert module.should_do_markup(no_color=False, configs={}) is False
@ -136,6 +135,14 @@ def test_should_do_markup_respects_NO_COLOR_environment_variable():
assert module.should_do_markup(no_color=False, configs={}) is False
def test_should_do_markup_ignores_empty_NO_COLOR_environment_variable():
flexmock(module.os.environ).should_receive('get').with_args('NO_COLOR', None).and_return('')
flexmock(module.os.environ).should_receive('get').with_args('PY_COLORS', None).and_return(None)
flexmock(module).should_receive('interactive_console').and_return(True)
assert module.should_do_markup(no_color=False, configs={}) is True
def test_should_do_markup_prefers_NO_COLOR_to_PY_COLORS():
flexmock(module.os.environ).should_receive('get').with_args('PY_COLORS', None).and_return(
'True'