Skip to content

Commit 4234808

Browse files
committed
Add logger unittest
1 parent 5e5ca2b commit 4234808

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

test/test_logger.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
import unittest
99
from unittest import mock
1010
from unittest.mock import Mock
11+
import gzip
1112
import sys
13+
import tempfile
1214
import can
1315
import can.logger
1416

@@ -105,5 +107,38 @@ def test_log_virtual_sizedlogger(self):
105107
self.mock_logger_sized.assert_called_once()
106108

107109

110+
class TestLoggerCompressedFile(unittest.TestCase):
111+
def setUp(self) -> None:
112+
# Patch VirtualBus object
113+
self.patcher_virtual_bus = mock.patch(
114+
"can.interfaces.virtual.VirtualBus", spec=True
115+
)
116+
self.MockVirtualBus = self.patcher_virtual_bus.start()
117+
self.mock_virtual_bus = self.MockVirtualBus.return_value
118+
119+
self.testmsg = can.Message(
120+
arbitration_id=0xC0FFEE, data=[0, 25, 0, 1, 3, 1, 4, 1], is_extended_id=True
121+
)
122+
123+
self.baseargs = [sys.argv[0], "-i", "virtual"]
124+
125+
def test_compressed_logfile(self):
126+
"""
127+
Basic test to verify Logger is able to write gzip files.
128+
"""
129+
self.mock_virtual_bus.recv = Mock(side_effect=[self.testmsg, KeyboardInterrupt])
130+
131+
with tempfile.NamedTemporaryFile(suffix=".log.gz", delete=True) as compressed:
132+
sys.argv = self.baseargs + ["--file_name", compressed.name]
133+
can.logger.main()
134+
with gzip.open(compressed.name, "rt") as decompressed:
135+
last_line = decompressed.readlines()[-1]
136+
137+
self.assertEqual(last_line, "(0.000000) vcan0 00C0FFEE#0019000103010401\n")
138+
139+
def tearDown(self) -> None:
140+
self.patcher_virtual_bus.stop()
141+
142+
108143
if __name__ == "__main__":
109144
unittest.main()

0 commit comments

Comments
 (0)