Skip to content

Commit 74b59cf

Browse files
committed
fix logger_test.py
1 parent 0866657 commit 74b59cf

2 files changed

Lines changed: 34 additions & 18 deletions

File tree

can/io/logger.py

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,24 @@ class Logger(BaseIOHandler, Listener):
4141
@staticmethod
4242
def __new__(cls, filename, *args, **kwargs):
4343
"""
44-
:param str filename: the filename/path the file to write to
44+
:type filename: str or None or path-like
45+
:param filename: the filename/path the file to write to,
46+
may be a path-like object if the target logger supports
47+
it, and may be None to instantiate a :class:`~can.Printer`
48+
4549
"""
46-
if filename.endswith(".asc"):
47-
return ASCWriter(filename, *args, **kwargs)
48-
elif filename.endswith(".blf"):
49-
return BLFWriter(filename, *args, **kwargs)
50-
elif filename.endswith(".csv"):
51-
return CSVWriter(filename, *args, **kwargs)
52-
elif filename.endswith(".db"):
53-
return SqliteWriter(filename, *args, **kwargs)
54-
elif filename.endswith(".log"):
55-
return CanutilsLogWriter(filename, *args, **kwargs)
56-
else:
57-
log.info('unknown file type "%s", falling pack to can.Printer', filename)
58-
return Printer(filename, *args, **kwargs)
50+
if filename:
51+
if filename.endswith(".asc"):
52+
return ASCWriter(filename, *args, **kwargs)
53+
elif filename.endswith(".blf"):
54+
return BLFWriter(filename, *args, **kwargs)
55+
elif filename.endswith(".csv"):
56+
return CSVWriter(filename, *args, **kwargs)
57+
elif filename.endswith(".db"):
58+
return SqliteWriter(filename, *args, **kwargs)
59+
elif filename.endswith(".log"):
60+
return CanutilsLogWriter(filename, *args, **kwargs)
61+
62+
# else:
63+
log.info('unknown file type "%s", falling pack to can.Printer', filename)
64+
return Printer(filename, *args, **kwargs)

test/listener_test.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import logging
1313
import tempfile
1414
import sqlite3
15+
from os.path import join, dirname
1516

1617
import can
1718

@@ -91,7 +92,14 @@ def testRemoveListenerFromNotifier(self):
9192

9293
def testPlayerTypeResolution(self):
9394
def test_filetype_to_instance(extension, klass):
94-
with tempfile.NamedTemporaryFile(suffix=extension) as my_file:
95+
print("testing: {}".format(extension))
96+
97+
if extension == ".blf":
98+
file_handler = open(join(dirname(__file__), "data/logfile.blf"))
99+
else:
100+
file_handler = tempfile.NamedTemporaryFile(suffix=extension)
101+
102+
with file_handler as my_file:
95103
with can.LogReader(my_file.name) as reader:
96104
self.assertIsInstance(reader, klass)
97105

@@ -104,11 +112,10 @@ def test_filetype_to_instance(extension, klass):
104112
# test file extensions that are not supported
105113
with self.assertRaisesRegexp(NotImplementedError, ".xyz_42"):
106114
test_filetype_to_instance(".xyz_42", can.Printer)
107-
with self.assertRaises(Exception):
108-
test_filetype_to_instance(None, can.Printer)
109115

110116
def testLoggerTypeResolution(self):
111117
def test_filetype_to_instance(extension, klass):
118+
print("testing: {}".format(extension))
112119
with tempfile.NamedTemporaryFile(suffix=extension) as my_file:
113120
with can.Logger(my_file.name) as writer:
114121
self.assertIsInstance(writer, klass)
@@ -121,8 +128,11 @@ def test_filetype_to_instance(extension, klass):
121128
test_filetype_to_instance(".txt", can.Printer)
122129

123130
# test file extensions that should use a fallback
131+
test_filetype_to_instance("", can.Printer)
132+
test_filetype_to_instance(".", can.Printer)
124133
test_filetype_to_instance(".some_unknown_extention_42", can.Printer)
125-
test_filetype_to_instance(None, can.Printer)
134+
with can.Logger(None) as logger:
135+
self.assertIsInstance(logger, can.Printer)
126136

127137
def testBufferedListenerReceives(self):
128138
a_listener = can.BufferedReader()

0 commit comments

Comments
 (0)