Failed Conditions
Pull Request — master (#1152)
by Lasse
03:36
created

run()   A

Complexity

Conditions 1

Size

Total Lines 5

Duplication

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