all repos — listfix @ d0bca2d845a0d19fb5fb9f9a703550de0775a5cc

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

listfix/test.py (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 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)