Skip to content

Commit 176eb7d

Browse files
committed
refactor test_extension_matching tests to use explicit extensions
1 parent 1f1b91b commit 176eb7d

File tree

3 files changed

+46
-30
lines changed

3 files changed

+46
-30
lines changed

can/io/logger.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,10 @@ def __new__( # type: ignore
9797
suffix, file_or_filename = Logger.compress(filename)
9898

9999
try:
100-
return Logger.message_writers[suffix](file_or_filename, *args, **kwargs)
100+
LoggerType = Logger.message_writers[suffix]
101+
if LoggerType is None:
102+
raise (ValueError(f'failed to import logger for extension "{suffix}"'))
103+
return LoggerType(file_or_filename, *args, **kwargs)
101104
except KeyError:
102105
raise ValueError(
103106
f'No write support for this unknown log format "{suffix}"'

can/io/mf4.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@
2222
from asammdf.blocks.v4_constants import BUS_TYPE_CAN, SOURCE_BUS
2323
import numpy as np
2424

25-
ASAMMDF_AVAILABLE = True
26-
2725
except ImportError as error:
28-
ASAMMDF_AVAILABLE = False
2926
raise error
3027

3128

test/logformats_test.py

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,34 +36,50 @@
3636

3737

3838
class ReaderWriterExtensionTest(unittest.TestCase):
39-
message_writers_and_readers = {}
40-
for suffix, writer in can.Logger.message_writers.items():
41-
message_writers_and_readers[suffix] = (
42-
writer,
43-
can.LogReader.message_readers.get(suffix),
44-
)
39+
def _get_suffix_case_variants(self, suffix):
40+
return [
41+
suffix.upper(),
42+
suffix.lower(),
43+
f"can.msg.ext{suffix}",
44+
"".join([c.upper() if i % 2 else c for i, c in enumerate(suffix)]),
45+
]
4546

46-
def test_extension_matching(self):
47-
for suffix, (writer, reader) in self.message_writers_and_readers.items():
48-
suffix_variants = [
49-
suffix.upper(),
50-
suffix.lower(),
51-
f"can.msg.ext{suffix}",
52-
"".join([c.upper() if i % 2 else c for i, c in enumerate(suffix)]),
53-
]
54-
for suffix_variant in suffix_variants:
55-
tmp_file = tempfile.NamedTemporaryFile(
56-
suffix=suffix_variant, delete=False
57-
)
58-
tmp_file.close()
59-
try:
47+
def _test_extension(self, suffix):
48+
WriterType = can.Logger.message_writers.get(suffix)
49+
ReaderType = can.LogReader.message_readers.get(suffix)
50+
for suffix_variant in self._get_suffix_case_variants(suffix):
51+
tmp_file = tempfile.NamedTemporaryFile(suffix=suffix_variant, delete=False)
52+
tmp_file.close()
53+
try:
54+
if WriterType:
6055
with can.Logger(tmp_file.name) as logger:
61-
assert type(logger) == writer
62-
if reader is not None:
63-
with can.LogReader(tmp_file.name) as player:
64-
assert type(player) == reader
65-
finally:
66-
os.remove(tmp_file.name)
56+
assert type(logger) == WriterType
57+
if ReaderType:
58+
with can.LogReader(tmp_file.name) as player:
59+
assert type(player) == ReaderType
60+
finally:
61+
os.remove(tmp_file.name)
62+
63+
def test_extension_matching_asc(self):
64+
self._test_extension(".asc")
65+
66+
def test_extension_matching_blf(self):
67+
self._test_extension(".blf")
68+
69+
def test_extension_matching_csv(self):
70+
self._test_extension(".csv")
71+
72+
def test_extension_matching_db(self):
73+
self._test_extension(".db")
74+
75+
def test_extension_matching_log(self):
76+
self._test_extension(".log")
77+
78+
def test_extension_matching_txt(self):
79+
self._test_extension(".txt")
80+
81+
def test_extension_matching_mf4(self):
82+
self._test_extension(".mf4")
6783

6884

6985
class ReaderWriterTest(unittest.TestCase, ComparingMessagesTestCase, metaclass=ABCMeta):

0 commit comments

Comments
 (0)