1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00
pip/tests/unit/test_log.py
2013-10-30 18:16:30 -07:00

74 lines
2.1 KiB
Python

from pip.backwardcompat import StringIO
from pip.log import should_color, should_warn, Logger
def test_should_color_std():
assert not should_color(object(), {}, std=[object()])
def test_should_color_isatty():
class FakeTTY(object):
def isatty(self):
return True
consumer = FakeTTY()
assert should_color(consumer, {}, std=[consumer])
def test_should_color_environ():
consumer = object()
assert should_color(consumer, {"TERM": "ANSI"}, std=[consumer])
def test_should_color_notty_environ():
consumer = object()
assert not should_color(consumer, {}, std=[consumer])
def test_should_warn_greater_one_minor():
assert should_warn("1.4", "1.6")
def test_should_warn_exactly_one_minor():
assert not should_warn("1.5", "1.6")
def test_should_warn_equal():
assert not should_warn("1.6", "1.6")
def test_should_warn_greater():
assert not should_warn("1.7", "1.6")
def test_should_warn_significance():
assert should_warn("1.4.dev1", "1.6")
def test_log_no_extra_line_break():
"""
Confirm that multiple `.write()` consumers doesn't result in additional '\n's per write
"""
consumer1 = StringIO()
consumer2 = StringIO()
logger = Logger()
logger.add_consumers(
(logger.NOTIFY, consumer1),
(logger.NOTIFY, consumer2)
)
logger.notify("one line")
# splitlines(True) will detect empty line-breaks
assert 1 == len(consumer1.getvalue().splitlines(True))
assert 1 == len(consumer2.getvalue().splitlines(True))
def test_level_for_integer():
logger = Logger()
assert logger.VERBOSE_DEBUG == logger.level_for_integer(-1000)
assert logger.VERBOSE_DEBUG == logger.level_for_integer(0)
assert logger.DEBUG == logger.level_for_integer(1)
assert logger.INFO == logger.level_for_integer(2)
assert logger.NOTIFY == logger.level_for_integer(3)
assert logger.WARN == logger.level_for_integer(4)
assert logger.ERROR == logger.level_for_integer(5)
assert logger.FATAL == logger.level_for_integer(6)
assert logger.FATAL == logger.level_for_integer(1000)