Skip to content

Instantly share code, notes, and snippets.

@melinath
Created October 5, 2010 05:01
Show Gist options
  • Select an option

  • Save melinath/611024 to your computer and use it in GitHub Desktop.

Select an option

Save melinath/611024 to your computer and use it in GitHub Desktop.
from django.test import TestCase
from django.contrib.auth.models import User
from stepping_out.mail.models import UserEmail, MailingList, sync_user_emails
class MailingListTest(TestCase):
def setUp(self):
self.user1 = User.objects.create_user(username="username", password="password")
self.user2 = User.objects.create_user(username="test", password="test")
self.useremail = UserEmail.objects.create(email='mrow@test.com')
self.site = Site.objects.create(name="Hello", domain="test.com")
self.mailing_list = MailingList.objects.create(name="Test List", address="test-list", site=self.site)
def test_email_sync(self):
user = self.user1
user.email = "email@test.com"
user.save()
try:
useremail = user.emails.get(email='email@test.com')
except UserEmail.DoesNotExist:
self.fail("Email did not sync!")
def test_subscription(self):
user = self.user1
useremail = self.useremail
mailing_list = self.mailing_list
mailing_list.subscribe(user.email)
mailing_list.subscribe(useremail.email)
self.assertIn(user, mailing_list.subscribed_users.all())
self.assertIn(useremail, mailing_list.subscribed_emails.all())
self.assertTrue(mailing_list.is_subscribed(user.email))
self.assertTrue(mailing_list.is_subscribed(useremail.email))
mailing_list.unsubscribe(user.email)
mailing_list.unsubscribe(useremail.email)
self.assertNotIn(user, mailing_list.subscribed_users.all())
self.assertNotIn(useremail, mailing_list.subscribed_emails.all())
self.assertFalse(mailing_list.is_subscribed(user.email))
self.assertFalse(mailing_list.is_subscribed(useremail.email))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment