LogMessageTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 70
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A test_construction() 0 18 1
A setUp() 0 5 1
A test_equals() 0 8 1
A test_to_str() 0 18 1
A test_string_dict() 0 14 1
1
import unittest
2
from datetime import datetime
3
4
from coalib.misc import Constants
5
from coalib.output.printers.LOG_LEVEL import LOG_LEVEL
6
from coalib.processes.communication.LogMessage import LogMessage
7
8
9
class LogMessageTest(unittest.TestCase):
10
    timestamp = datetime.today()
11
12
    def setUp(self):
13
        self.uut = LogMessage(LOG_LEVEL.DEBUG,
14
                              "test",
15
                              "message",
16
                              timestamp=self.timestamp)
17
18
    def test_construction(self):
19
        # take a look if defaults are good
20
        self.assertEqual(self.uut.log_level, LOG_LEVEL.DEBUG)
21
        self.assertEqual(self.uut.message, "test message")
22
        self.assertEqual(self.uut.timestamp, self.timestamp)
23
24
        # see that arguments are processed right
25
        self.uut = LogMessage(LOG_LEVEL.WARNING,
26
                              "   a msg  ",
27
                              5,
28
                              "  ",
29
                              timestamp=self.timestamp)
30
        self.assertEqual(self.uut.log_level, LOG_LEVEL.WARNING)
31
        self.assertEqual(self.uut.message, "   a msg   5")
32
        self.assertEqual(self.uut.timestamp, self.timestamp)
33
34
        self.assertRaises(ValueError, LogMessage, LOG_LEVEL.DEBUG, "")
35
        self.assertRaises(ValueError, LogMessage, 5, "test")
36
37
    def test_to_str(self):
38
        self.uut.message = Constants.COMPLEX_TEST_STRING
39
        self.uut.log_level = LOG_LEVEL.ERROR
40
        self.assertEqual(str(self.uut),
41
                         "[{}] {}".format("ERROR",
42
                                          Constants.COMPLEX_TEST_STRING))
43
        self.uut.log_level = LOG_LEVEL.WARNING
44
        self.assertEqual(str(self.uut),
45
                         "[{}] {}".format("WARNING",
46
                                          Constants.COMPLEX_TEST_STRING))
47
        self.uut.log_level = LOG_LEVEL.DEBUG
48
        self.assertEqual(str(self.uut),
49
                         "[{}] {}".format("DEBUG",
50
                                          Constants.COMPLEX_TEST_STRING))
51
        self.uut.log_level = 5
52
        self.assertEqual(str(self.uut),
53
                         "[{}] {}".format("ERROR",
54
                                          Constants.COMPLEX_TEST_STRING))
55
56
    def test_equals(self):
57
        self.assertEqual(LogMessage(LOG_LEVEL.DEBUG, "test message"),
58
                         LogMessage(LOG_LEVEL.DEBUG, "test message"))
59
        self.assertNotEqual(LogMessage(LOG_LEVEL.DEBUG, "test message"),
60
                            LogMessage(LOG_LEVEL.WARNING, "test message"))
61
        self.assertNotEqual(LogMessage(LOG_LEVEL.DEBUG, "test message"),
62
                            LogMessage(LOG_LEVEL.DEBUG, "test"))
63
        self.assertNotEqual(LogMessage(LOG_LEVEL.DEBUG, "test message"), 5)
64
65
    def test_string_dict(self):
66
        self.uut.log_level = LOG_LEVEL.DEBUG
67
        self.uut.message = "test"
68
        self.assertEqual(
69
            self.uut.to_string_dict(),
70
            {"log_level": "DEBUG",
71
             "message": "test",
72
             "timestamp": self.timestamp.isoformat()})
73
74
        self.uut.timestamp = None
75
        self.uut.log_level = -9999  # invalid level
76
        self.assertEqual(
77
            self.uut.to_string_dict(),
78
            {"log_level": "", "message": "test", "timestamp": ""})
79