Browse Source

NO_COLOR set to any value returns false

shivansh02 1 year ago
parent
commit
458d157e62
2 changed files with 19 additions and 6 deletions
  1. 1 1
      borgmatic/logger.py
  2. 18 5
      tests/unit/test_logger.py

+ 1 - 1
borgmatic/logger.py

@@ -42,7 +42,7 @@ def should_do_markup(no_color, configs):
         return False
 
     no_color_env = os.environ.get('NO_COLOR', None)
-    if no_color_env is not None and to_bool(no_color_env):
+    if no_color_env is not None:
         return False
 
     py_colors = os.environ.get('PY_COLORS', None)

+ 18 - 5
tests/unit/test_logger.py

@@ -69,7 +69,9 @@ def test_should_do_markup_prefers_any_false_config_value():
 
 
 def test_should_do_markup_respects_PY_COLORS_environment_variable():
-    flexmock(module.os.environ).should_receive('get').with_args('PY_COLORS', None).and_return('True')
+    flexmock(module.os.environ).should_receive('get').with_args('PY_COLORS', None).and_return(
+        'True'
+    )
     flexmock(module.os.environ).should_receive('get').with_args('NO_COLOR', None).and_return(None)
 
     flexmock(module).should_receive('to_bool').and_return(True)
@@ -109,30 +111,41 @@ def test_should_do_markup_respects_interactive_console_value():
 
 
 def test_should_do_markup_prefers_PY_COLORS_to_interactive_console_value():
-    flexmock(module.os.environ).should_receive('get').with_args('PY_COLORS', None).and_return('True')
+    flexmock(module.os.environ).should_receive('get').with_args('PY_COLORS', None).and_return(
+        'True'
+    )
     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)
 
     assert module.should_do_markup(no_color=False, configs={}) is True
 
+
 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('to_bool').and_return(True)
     flexmock(module).should_receive('interactive_console').and_return(False)
 
     assert module.should_do_markup(no_color=False, configs={}) is False
 
+
 def test_should_do_markup_respects_NO_COLOR_environment_variable():
     flexmock(module.os.environ).should_receive('get').with_args('NO_COLOR', None).and_return('True')
     flexmock(module.os.environ).should_receive('get').with_args('PY_COLORS', None).and_return(None)
-    
-    flexmock(module).should_receive('to_bool').and_return(True)
 
     assert module.should_do_markup(no_color=False, configs={}) is False
 
 
+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'
+    )
+    flexmock(module.os.environ).should_receive('get').with_args('NO_COLOR', None).and_return(
+        'SomeValue'
+    )
+
+    assert module.should_do_markup(no_color=False, configs={}) is False
+
 
 def test_multi_stream_handler_logs_to_handler_for_log_level():
     error_handler = flexmock()