all repos — listfix @ 156df726086b5dc8f34d79babdc41bbbe40ea743

Postfix Mailing List Software; Maintained on behalf the of Agency Economy Incorporated NFP.

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
commit

156df726086b5dc8f34d79babdc41bbbe40ea743

parent

d3783f98e966f4311b5173dd99f8651893b74440

3 files changed, 49 insertions(+), 5 deletions(-)

jump to
M listfix.pylistfix.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.pylistfix/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.pylistfix/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()