Beispiel #1
0
 def testRegistration(self):
     # Register the model and test.
     subscribers.register(SubscribersTestModel1)
     self.assertTrue(subscribers.is_registered(SubscribersTestModel1))
     self.assertRaises(RegistrationError, lambda: subscribers.register(SubscribersTestModel1))
     self.assertTrue(SubscribersTestModel1 in subscribers.get_registered_models())
     self.assertTrue(isinstance(subscribers.get_adapter(SubscribersTestModel1), subscribers.EmailAdapter))
     # Unregister the model and text.
     subscribers.unregister(SubscribersTestModel1)
     self.assertFalse(subscribers.is_registered(SubscribersTestModel1))
     self.assertRaises(RegistrationError, lambda: subscribers.unregister(SubscribersTestModel1))
     self.assertTrue(SubscribersTestModel1 not in subscribers.get_registered_models())
     self.assertRaises(RegistrationError, lambda: isinstance(subscribers.get_adapter(SubscribersTestModel1))) 
Beispiel #2
0
 def assertViewOnSiteWorks(self, email):
     view_url = subscribers.get_adapter(email.__class__).get_view_url(email, self.subscriber1)
     # Test that is doesn't let you in if the email has not been sent.
     response = self.client.get(view_url)
     self.assertEqual(response.status_code, 404)
     # Test that an unsent email does not work.
     subscribers.dispatch_email(email, self.subscriber1)
     response = self.client.get(view_url)
     self.assertEqual(response.status_code, 404)
     # Test that the view URL is valid.
     subscribers.send_email_batch()
     response = self.client.get(view_url)
     self.assertEqual(response.status_code, 200)
     # Test that the txt version also works.
     response = self.client.get(view_url + "txt/")
     self.assertEqual(response.status_code, 200)
     self.assertEqual(response["Content-Type"], "text/plain; charset=utf-8")
Beispiel #3
0
 def assertUnsubscribeWorkflowWorks(self, email):
     self.assertTrue(Subscriber.objects.get(id=self.subscriber1.id).is_subscribed)
     # Get the unsubscribe URL.
     unsubscribe_url = subscribers.get_adapter(email.__class__).get_unsubscribe_url(email, self.subscriber1)
     self.assertTrue(unsubscribe_url)  # Make sure the unsubscribe url is set.
     # Attempt to unsubscribe from an email that was never dispatched.
     self.assertEqual(self.client.get(unsubscribe_url).status_code, 404)
     # Dispatch the email.
     subscribers.dispatch_email(email, self.subscriber1)
     # Attempt to unsubscribe from an email that was never sent.
     self.assertEqual(self.client.get(unsubscribe_url).status_code, 404)
     # Send the emails.
     subscribers.send_email_batch()
     # Try to unsubscribe again.
     response = self.client.get(unsubscribe_url)
     self.assertEqual(response.status_code, 200)
     response = self.client.post(unsubscribe_url, follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertTemplateUsed(response, "subscribers/unsubscribe_success.html")
     # See if the unsubscribe worked.
     self.assertFalse(Subscriber.objects.get(id=self.subscriber1.id).is_subscribed)
     # Re-subscribe the user.
     self.subscriber1 = Subscriber.objects.subscribe(email="*****@*****.**")