all repos — listfix @ d0bca2d845a0d19fb5fb9f9a703550de0775a5cc

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

Create a unittest module and write tests for db

	modified:   listfix.py
	modified:   listfix/__init__.py
	new file:   listfix/test.py
Brian Barto bartobrian@gmail.com
Tue, 05 Apr 2022 15:37:42 -0400
commit

d0bca2d845a0d19fb5fb9f9a703550de0775a5cc

parent

c75eb41aa6a40e13bdcdc38a111128452c3c633e

3 files changed, 89 insertions(+), 1 deletions(-)

jump to
M listfix.pylistfix.py

@@ -2,7 +2,7 @@ #!/usr/bin/python3

import sys import os -from listfix import Args, DB, Email, Errors, Log +from listfix import Args, DB, Email, Errors, Log, Test ## Get log object

@@ -96,6 +96,10 @@ list_email = args.get_list_email()

recipient_email = args.get_recipient_email() db.destroy_recipient(list_email, recipient_email) print(f"Recipient ({recipient_email}) removed from list ({list_email})") + +elif (command == "test"): + test = Test() + test.run_test() else: raise ValueError(f"Unknown command: {command}")
M listfix/__init__.pylistfix/__init__.py

@@ -4,3 +4,4 @@ from .email import Email

from .args import Args from .errors import Errors from .log import Log +from .test import Test
A listfix/test.py

@@ -0,0 +1,83 @@

+import unittest +import os +import listfix + +from os.path import exists +from listfix import DB + +class Test(unittest.TestCase): + + def run_test(self): + suite = unittest.defaultTestLoader.loadTestsFromTestCase(Test) + unittest.TextTestRunner().run(suite) + + def setUp(self): + self.db_name = "/tmp/test.sqlite3" + if (exists(self.db_name)): + os.remove(self.db_name) + + def test_db(self): + + list_id = None + list_name = "List Name" + list_email = "test@test.com" + recipient_name = "Recipient Name" + recipient_email = "test@recipient.com" + + ## init + db = DB(self.db_name) + self.assertTrue(type(db) is listfix.db.DB) + self.assertTrue(exists(self.db_name)) + + ## create_list() + db.create_list(list_email, list_name) + row = db.db.execute("select id, name, email from lists").fetchone() + list_id = row[0] + self.assertEqual(row[1], list_name) + self.assertEqual(row[2], list_email) + + ## check_list_exists() + self.assertTrue(db.check_list_exists(list_email)) + + ## get_list_id() + self.assertEqual(list_id, db.get_list_id(list_email)) + + ## get_list_name() + self.assertEqual(list_name, db.get_list_name(list_email)) + + ## get_lists() + self.assertIn(list_email, db.get_lists()) + + ## create_recipient() + db.create_recipient(list_email, recipient_email, recipient_name) + row = db.db.execute("select id, list_id, name, email from recipients").fetchone() + recipient_id = row[0] + self.assertEqual(row[1], list_id) + self.assertEqual(row[2], recipient_name) + self.assertEqual(row[3], recipient_email) + + ## check_recipient_exists() + self.assertTrue(db.check_recipient_exists(list_email, recipient_email)) + + ## get_recipient_id() + self.assertEqual(recipient_id, db.get_recipient_id(list_email, recipient_email)) + + ## get_recipient_name() + self.assertEqual(recipient_name, db.get_recipient_name(list_email, recipient_email)) + + ## get_list_recipients() + self.assertIn(recipient_email, db.get_list_recipients(list_email)) + + ## destroy_recipient() + db.destroy_recipient(list_email, recipient_email) + self.assertNotIn(recipient_email, db.get_list_recipients(list_email)) + + ## destroy_list() + db.destroy_list(list_email) + self.assertFalse(db.check_list_exists(list_email)) + + ## close + db.close() + os.remove(self.db_name) + +