bgneal@51: """
bgneal@51: Model tests for the email_list application.
bgneal@51: 
bgneal@51: """
bgneal@51: import datetime
bgneal@51: 
bgneal@51: from django.test import TestCase
bgneal@51: 
bgneal@51: from email_list.models import Subscriber
bgneal@51: 
bgneal@51: 
bgneal@51: class SubscriberTestCase(TestCase):
bgneal@51: 
bgneal@51:     def test_auto_save(self):
bgneal@51: 
bgneal@51:         sub = Subscriber(name='', location='', email='test@example.com')
bgneal@51:         sub.save()
bgneal@51: 
bgneal@51:         now = datetime.datetime.now()
bgneal@51:         self.assertTrue(now - sub.status_date < datetime.timedelta(seconds=2))
bgneal@51: 
bgneal@51:         self.assertTrue(sub.status == 'A')
bgneal@51:         self.assertTrue(sub.is_active())
bgneal@51:         self.failIf(sub.is_pending())
bgneal@51:         self.failIf(sub.is_leaving())
bgneal@51: 
bgneal@51:     def test_set_pending(self):
bgneal@51: 
bgneal@51:         sub = Subscriber(name='', location='', email='test@example.com')
bgneal@51:         sub.set_pending()
bgneal@51: 
bgneal@51:         now = datetime.datetime.now()
bgneal@51:         self.assertTrue(now - sub.status_date < datetime.timedelta(seconds=2))
bgneal@51: 
bgneal@51:         self.assertTrue(sub.status == 'P')
bgneal@51:         self.failIf(sub.is_active())
bgneal@51:         self.assertTrue(sub.is_pending())
bgneal@51:         self.failIf(sub.is_leaving())
bgneal@51: 
bgneal@51:         self.assertTrue(len(sub.key) == sub.key_length)
bgneal@51: 
bgneal@51:     def test_set_active(self):
bgneal@51: 
bgneal@51:         sub = Subscriber(name='', location='', email='test@example.com')
bgneal@51:         sub.set_active()
bgneal@51: 
bgneal@51:         now = datetime.datetime.now()
bgneal@51:         self.assertTrue(now - sub.status_date < datetime.timedelta(seconds=2))
bgneal@51: 
bgneal@51:         self.assertTrue(sub.status == 'A')
bgneal@51:         self.assertTrue(sub.is_active())
bgneal@51:         self.failIf(sub.is_pending())
bgneal@51:         self.failIf(sub.is_leaving())
bgneal@51: 
bgneal@51:     def test_set_leaving(self):
bgneal@51: 
bgneal@51:         sub = Subscriber(name='', location='', email='test@example.com')
bgneal@51:         sub.set_leaving()
bgneal@51: 
bgneal@51:         now = datetime.datetime.now()
bgneal@51:         self.assertTrue(now - sub.status_date < datetime.timedelta(seconds=2))
bgneal@51: 
bgneal@51:         self.assertTrue(sub.status == 'L')
bgneal@51:         self.failIf(sub.is_active())
bgneal@51:         self.failIf(sub.is_pending())
bgneal@51:         self.assertTrue(sub.is_leaving())
bgneal@51: 
bgneal@51:         self.assertTrue(len(sub.key) == sub.key_length)
bgneal@51: 
bgneal@51:     def test_gen_key(self):
bgneal@51: 
bgneal@51:         sub = Subscriber(name='', location='', email='test@example.com')
bgneal@51:         sub.status_date = datetime.datetime.now()
bgneal@51:         sub.gen_key()
bgneal@51:         self.assertTrue(len(sub.key) == sub.key_length)
bgneal@51: