view email_list/tests/test_models.py @ 197:5f5609677711

Add Pipleine Center of The Surf quote to home page.
author Brian Neal <bgneal@gmail.com>
date Tue, 09 Oct 2018 19:41:30 -0500
parents 1b5b9be17764
children
line wrap: on
line source
"""
Model tests for the email_list application.

"""
import datetime

from django.test import TestCase

from email_list.models import Subscriber


class SubscriberTestCase(TestCase):

    def test_auto_save(self):

        sub = Subscriber(name='', location='', email='test@example.com')
        sub.save()

        now = datetime.datetime.now()
        self.assertTrue(now - sub.status_date < datetime.timedelta(seconds=2))

        self.assertTrue(sub.status == 'A')
        self.assertTrue(sub.is_active())
        self.assertFalse(sub.is_pending())
        self.assertFalse(sub.is_leaving())

    def test_set_pending(self):

        sub = Subscriber(name='', location='', email='test@example.com')
        sub.set_pending()

        now = datetime.datetime.now()
        self.assertTrue(now - sub.status_date < datetime.timedelta(seconds=2))

        self.assertTrue(sub.status == 'P')
        self.assertFalse(sub.is_active())
        self.assertTrue(sub.is_pending())
        self.assertFalse(sub.is_leaving())

        self.assertTrue(len(sub.key) == sub.key_length)

    def test_set_active(self):

        sub = Subscriber(name='', location='', email='test@example.com')
        sub.set_active()

        now = datetime.datetime.now()
        self.assertTrue(now - sub.status_date < datetime.timedelta(seconds=2))

        self.assertTrue(sub.status == 'A')
        self.assertTrue(sub.is_active())
        self.assertFalse(sub.is_pending())
        self.assertFalse(sub.is_leaving())

    def test_set_leaving(self):

        sub = Subscriber(name='', location='', email='test@example.com')
        sub.set_leaving()

        now = datetime.datetime.now()
        self.assertTrue(now - sub.status_date < datetime.timedelta(seconds=2))

        self.assertTrue(sub.status == 'L')
        self.assertFalse(sub.is_active())
        self.assertFalse(sub.is_pending())
        self.assertTrue(sub.is_leaving())

        self.assertTrue(len(sub.key) == sub.key_length)

    def test_gen_key(self):

        sub = Subscriber(name='', location='', email='test@example.com')
        sub.status_date = datetime.datetime.now()
        sub.gen_key()
        self.assertTrue(len(sub.key) == sub.key_length)