Ver código fonte

A few more tests for new colored logging.

Dan Helfman 6 anos atrás
pai
commit
620f9e64d6
2 arquivos alterados com 41 adições e 9 exclusões
  1. 2 2
      borgmatic/logger.py
  2. 39 7
      tests/unit/test_logger.py

+ 2 - 2
borgmatic/logger.py

@@ -21,11 +21,11 @@ def to_bool(arg):
     return False
 
 
-def should_do_markup(no_colour):
+def should_do_markup(no_color):
     '''
     Determine if we should enable colorama marking up.
     '''
-    if no_colour:
+    if no_color:
         return False
 
     py_colors = os.environ.get('PY_COLORS', None)

+ 39 - 7
tests/unit/test_logger.py

@@ -1,17 +1,49 @@
 import pytest
+from flexmock import flexmock
 
-from borgmatic.logger import to_bool
+from borgmatic import logger as module
 
 
 @pytest.mark.parametrize('bool_val', (True, 'yes', 'on', '1', 'true', 'True', 1))
-def test_logger_to_bool_is_true(bool_val):
-    assert to_bool(bool_val)
+def test_to_bool_parses_true_values(bool_val):
+    assert module.to_bool(bool_val)
 
 
 @pytest.mark.parametrize('bool_val', (False, 'no', 'off', '0', 'false', 'False', 0))
-def test_logger_to_bool_is_false(bool_val):
-    assert not to_bool(bool_val)
+def test_to_bool_parses_false_values(bool_val):
+    assert not module.to_bool(bool_val)
 
 
-def test_logger_to_bool_returns_none():
-    assert to_bool(None) is None
+def test_to_bool_passes_none_through():
+    assert module.to_bool(None) is None
+
+
+def test_should_do_markup_respects_no_color_value():
+    assert module.should_do_markup(no_color=True) is False
+
+
+def test_should_do_markup_respects_PY_COLORS_environment_variable():
+    flexmock(module.os.environ).should_receive('get').and_return('True')
+    flexmock(module).should_receive('to_bool').and_return(True)
+
+    assert module.should_do_markup(no_color=False) is True
+
+
+def test_should_do_markup_prefers_no_color_value_to_PY_COLORS():
+    flexmock(module.os.environ).should_receive('get').and_return('True')
+    flexmock(module).should_receive('to_bool').and_return(True)
+
+    assert module.should_do_markup(no_color=True) is False
+
+
+def test_should_do_markup_respects_stdout_tty_value():
+    flexmock(module.os.environ).should_receive('get').and_return(None)
+
+    assert module.should_do_markup(no_color=False) is False
+
+
+def test_should_do_markup_prefers_PY_COLORS_to_stdout_tty_value():
+    flexmock(module.os.environ).should_receive('get').and_return('True')
+    flexmock(module).should_receive('to_bool').and_return(True)
+
+    assert module.should_do_markup(no_color=False) is True