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)))
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")
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="*****@*****.**")