forked from hardbyte/python-can
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_logger.py
More file actions
109 lines (85 loc) · 3.63 KB
/
Copy pathtest_logger.py
File metadata and controls
109 lines (85 loc) · 3.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/usr/bin/env python
# coding: utf-8
"""
This module tests the functions inside of logger.py
"""
import unittest
from unittest import mock
from unittest.mock import Mock
import sys
import can
import can.logger
from .config import *
class TestLoggerScriptModule(unittest.TestCase):
def setUp(self) -> None:
# Patch VirtualBus object
patcher_virtual_bus = mock.patch("can.interfaces.virtual.VirtualBus", spec=True)
self.MockVirtualBus = patcher_virtual_bus.start()
self.addCleanup(patcher_virtual_bus.stop)
self.mock_virtual_bus = self.MockVirtualBus.return_value
self.mock_virtual_bus.shutdown = Mock()
# Patch Logger object
patcher_logger = mock.patch("can.logger.Logger", spec=True)
self.MockLogger = patcher_logger.start()
self.addCleanup(patcher_logger.stop)
self.mock_logger = self.MockLogger.return_value
self.mock_logger.stop = Mock()
self.MockLoggerUse = self.MockLogger
self.loggerToUse = self.mock_logger
# Patch SizedRotatingLogger object
patcher_logger_sized = mock.patch("can.logger.SizedRotatingLogger", spec=True)
self.MockLoggerSized = patcher_logger_sized.start()
self.addCleanup(patcher_logger_sized.stop)
self.mock_logger_sized = self.MockLoggerSized.return_value
self.mock_logger_sized.stop = Mock()
self.testmsg = can.Message(
arbitration_id=0xC0FFEE, data=[0, 25, 0, 1, 3, 1, 4, 1], is_extended_id=True
)
self.baseargs = [sys.argv[0], "-i", "virtual"]
def assertSuccessfullCleanup(self):
self.MockVirtualBus.assert_called_once()
self.mock_virtual_bus.shutdown.assert_called_once()
self.MockLoggerUse.assert_called_once()
self.loggerToUse.stop.assert_called_once()
def test_log_virtual(self):
self.mock_virtual_bus.recv = Mock(side_effect=[self.testmsg, KeyboardInterrupt])
sys.argv = self.baseargs
can.logger.main()
self.assertSuccessfullCleanup()
self.mock_logger.assert_called_once()
def test_log_virtual_active(self):
self.mock_virtual_bus.recv = Mock(side_effect=[self.testmsg, KeyboardInterrupt])
sys.argv = self.baseargs + ["--active"]
can.logger.main()
self.assertSuccessfullCleanup()
self.mock_logger.assert_called_once()
self.assertEqual(self.mock_virtual_bus.state, can.BusState.ACTIVE)
def test_log_virtual_passive(self):
self.mock_virtual_bus.recv = Mock(side_effect=[self.testmsg, KeyboardInterrupt])
sys.argv = self.baseargs + ["--passive"]
can.logger.main()
self.assertSuccessfullCleanup()
self.mock_logger.assert_called_once()
self.assertEqual(self.mock_virtual_bus.state, can.BusState.PASSIVE)
def test_log_virtual_with_config(self):
self.mock_virtual_bus.recv = Mock(side_effect=[self.testmsg, KeyboardInterrupt])
sys.argv = self.baseargs + [
"--bitrate",
"250000",
"--fd",
"--data_bitrate",
"2000000",
]
can.logger.main()
self.assertSuccessfullCleanup()
self.mock_logger.assert_called_once()
def test_log_virtual_sizedlogger(self):
self.mock_virtual_bus.recv = Mock(side_effect=[self.testmsg, KeyboardInterrupt])
self.MockLoggerUse = self.MockLoggerSized
self.loggerToUse = self.mock_logger_sized
sys.argv = self.baseargs + ["--file_size", "1000000"]
can.logger.main()
self.assertSuccessfullCleanup()
self.mock_logger_sized.assert_called_once()
if __name__ == "__main__":
unittest.main()