Completed
Pull Request — master (#2409)
by
unknown
01:51
created

LogPrinterTest.test_no_printer()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
dl 0
loc 3
rs 10
c 1
b 0
f 0
1
import unittest
2
from unittest import mock
3
import logging
4
5
from pyprint.NullPrinter import NullPrinter
6
from pyprint.Printer import Printer
7
from pyprint.ColorPrinter import ColorPrinter
8
9
from coalib.misc import Constants
10
from coalib.output.printers.LogPrinter import LogPrinter
11
from coalib.processes.communication.LogMessage import LOG_LEVEL, LogMessage
12
13
14
class LogPrinterTest(unittest.TestCase):
15
    log_message = LogMessage(LOG_LEVEL.ERROR,
16
                             Constants.COMPLEX_TEST_STRING)
17
18
    def test_get_printer(self):
19
        self.assertIs(LogPrinter("logger").printer, "logger")
20
        printer = Printer()
21
        self.assertIs(LogPrinter(printer).printer, printer)
22
23
    def test_logging(self):
24
        uut = LogPrinter(timestamp_format="")
25
        uut.logger = mock.MagicMock()
26
        uut.log_message(self.log_message)
27
28
        msg = Constants.COMPLEX_TEST_STRING
29
        uut.logger.log.assert_called_with(logging.ERROR, msg)
30
31
        uut = LogPrinter(log_level=LOG_LEVEL.DEBUG)
32
        uut.logger = mock.MagicMock()
33
34
        uut.log(LOG_LEVEL.ERROR, Constants.COMPLEX_TEST_STRING)
35
        uut.logger.log.assert_called_with(logging.ERROR, msg)
36
37
        uut.debug(Constants.COMPLEX_TEST_STRING, "d")
38
        uut.logger.log.assert_called_with(logging.DEBUG, msg + " d")
39
40
        uut.log_level = LOG_LEVEL.DEBUG
41
        uut.log_exception("Something failed.", NotImplementedError(msg))
42
        uut.logger.log.assert_any_call(logging.ERROR, "Something failed.")
43
        uut.logger.log.assert_called_with(
44
            logging.DEBUG,
45
            "Exception was:\n{exception}: {msg}".format(
46
                exception="NotImplementedError",
47
                msg=msg))
48
49
    def test_raises(self):
50
        uut = LogPrinter(NullPrinter())
51
        self.assertRaises(TypeError, uut.log, 5)
52
        self.assertRaises(TypeError, uut.log_exception, "message", 5)
53
        self.assertRaises(TypeError, uut.log_message, 5)
54
55
    def test_log_level(self):
56
        uut = LogPrinter()
57
        self.assertEqual(uut.log_level, logging.INFO)
58
        uut.log_level = logging.DEBUG
59
        self.assertEqual(uut.log_level, logging.DEBUG)
60
61
    def test_get_state(self):
62
        uut = LogPrinter()
63
        self.assertNotIn('logger', uut.__getstate__())
64
65
    def test_set_state(self):
66
        uut = LogPrinter()
67
        state = uut.__getstate__()
68
        uut.__setstate__(state)
69
        self.assertEqual(uut.logger, logging.getLogger('coala.raw'))
70
71
    def test_colored_printer(self):
72
        uut = LogPrinter(printer=ColorPrinter())
73
        self.assertIs(uut.logger, logging.getLogger('coala.colored'))
74
75
    def test_no_printer(self):
76
        uut = LogPrinter()
77
        self.assertIs(uut.logger, logging.getLogger('coala.raw'))
78