Make Log class accept log file path and write tests modified: listfix.py modified: listfix/errors.py modified: listfix/test.py
Brian Barto bartobrian@gmail.com
Wed, 06 Apr 2022 16:56:52 -0400
3 files changed,
49 insertions(+),
5 deletions(-)
M
listfix.py
→
listfix.py
@@ -10,7 +10,7 @@ listfix_dir = os.path.dirname(os.path.realpath(__file__))
log = Log(listfix_dir + "/listfix.log") -er = Errors(debug=True) +er = Errors(log, debug=True) er.set_exception_handler() db = DB(listfix_dir + "/listfix.sqlite3")
M
listfix/errors.py
→
listfix/errors.py
@@ -3,17 +3,18 @@ from .log import Log
class Errors: - def __init__(self, debug=False): + def __init__(self, log=None, debug=False): + self.log = log self.debug = debug self._exception_handler = None - self.log = Log() def set_exception_handler(self): self._exception_handler = sys.excepthook sys.excepthook = self.exception_handler def exception_handler(self, exception_type, exception, traceback): - self.log.error(f"{exception_type.__name__}, {exception}") + if (self.log): + self.log.error(f"{exception_type.__name__}, {exception}") if (self.debug): self._exception_handler(exception_type, exception, traceback) else:
M
listfix/test.py
→
listfix/test.py
@@ -3,7 +3,7 @@ import os
import listfix from os.path import exists -from listfix import DB +from listfix import DB, Log class Test(unittest.TestCase):@@ -12,9 +12,16 @@ suite = unittest.defaultTestLoader.loadTestsFromTestCase(Test)
unittest.TextTestRunner().run(suite) def setUp(self): + + ## db setup self.db_name = "/tmp/test.sqlite3" if (exists(self.db_name)): os.remove(self.db_name) + + ## log setup + self.log_name = "/tmp/test.log" + if (exists(self.log_name)): + os.remove(self.log_name) def test_db(self):@@ -80,4 +87,40 @@ ## close
db.close() os.remove(self.db_name) + def test_log(self): + test_type = "TEST" + test_text = "This is a test" + log = Log(self.log_name) + + ## write() + log.write(test_type, test_text) + f = open(self.log_name, "r") + last_line = f.readlines()[-1] + self.assertEqual(last_line[0:6], "[" + test_type + "]") + self.assertEqual(last_line[-15:-1], test_text) + f.close() + + ## info() + log.info(test_text) + f = open(self.log_name, "r") + last_line = f.readlines()[-1] + self.assertEqual(last_line[0:6], "[INFO]") + self.assertEqual(last_line[-15:-1], test_text) + f.close() + + ## error() + log.error(test_text) + f = open(self.log_name, "r") + last_line = f.readlines()[-1] + self.assertEqual(last_line[0:7], "[ERROR]") + self.assertEqual(last_line[-15:-1], test_text) + f.close() + + ## debug() + log.debug(test_text) + f = open(self.log_name, "r") + last_line = f.readlines()[-1] + self.assertEqual(last_line[0:7], "[DEBUG]") + self.assertEqual(last_line[-15:-1], test_text) + f.close()