def test_unsubscribe_request_activate(self): """ Update a request. """ subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail) subscription.save() activate_url = subscription.unsubscribe_activate_url() response = self.client.get(activate_url) self.assertInContext(response, 'form', UpdateForm) self.assertContains(response, subscription.activation_code) testname2 = 'Test Name2' response = self.client.post(activate_url, { 'name_field': testname2, 'user_activation_code': subscription.activation_code }) # Assure we are redirected to "unsubscribe activated" page. self.assertRedirects(response, self.unsubscribe_activated_url) subscription = self.get_only_subscription( email_field__exact=self.testemail ) self.assertTrue(subscription.unsubscribed) self.assertEqual(subscription.name, testname2) self.assertEqual(subscription.email, self.testemail) dt = (timezone.now() - subscription.unsubscribe_date).seconds self.assertLessThan(dt, 2)
def test_unsubscribe_request_activate(self): """ Update a request. """ subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail) subscription.save() activate_url = subscription.unsubscribe_activate_url() response = self.client.get(activate_url) self.assertInContext(response, 'form', UpdateForm) self.assertContains(response, subscription.activation_code) testname2 = 'Test Name2' response = self.client.post( activate_url, { 'name_field': testname2, 'user_activation_code': subscription.activation_code }) # Assure we are redirected to "unsubscribe activated" page. self.assertRedirects(response, self.unsubscribe_activated_url) subscription = self.get_only_subscription( email_field__exact=self.testemail) self.assertTrue(subscription.unsubscribed) self.assertEqual(subscription.name, testname2) self.assertEqual(subscription.email, self.testemail) dt = (timezone.now() - subscription.unsubscribe_date).seconds self.assertLessThan(dt, 2)
def test_subscribe_unsubscribed(self): """ After having been unsubscribed, a user should be able to subscribe again. This relates to #5 on GitHub. """ # Create a subscription subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail, subscribed=True) subscription.save() # Unsubscribe response = self.client.post( subscription.unsubscribe_activate_url(), { 'name_field': subscription.name, 'email_field': subscription.email, 'user_activation_code': subscription.activation_code }) # Assure we are redirected to "unsubscribe activated" page. self.assertRedirects(response, self.unsubscribe_activated_url) subscription = self.get_only_subscription( email_field__exact=self.testemail) self.assertFalse(subscription.subscribed) self.assertTrue(subscription.unsubscribed) # Resubscribe request response = self.client.post(self.subscribe_url, { 'name_field': subscription.name, 'email_field': subscription.email, }) # Assure we are redirected to "email sent page" self.assertRedirects(response, self.subscribe_email_sent_url) # self.assertFalse(subscription.subscribed) self.assertTrue(subscription.unsubscribed) # Activate subscription response = self.client.post( subscription.subscribe_activate_url(), { 'name_field': subscription.name, 'email_field': subscription.email, 'user_activation_code': subscription.activation_code }) # Assure we are redirected to "subscribe activated" page. self.assertRedirects(response, self.subscribe_activated_url) subscription = self.get_only_subscription( email_field__exact=self.testemail) self.assertTrue(subscription.subscribed) self.assertFalse(subscription.unsubscribed)
def test_unsubscribe_request_post(self): """ Post the unsubscribe request form. """ subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail, subscribed=True) subscription.save() response = self.client.post(self.unsubscribe_url, {'email_field': self.testemail}) # Assure we are redirected to "unsubscribe activation email sent" page. self.assertRedirects(response, self.unsubscribe_email_sent_url) """ Check the subscription email. """ self.assertEqual(len(mail.outbox), 1) activate_url = subscription.unsubscribe_activate_url() full_activate_url = 'http://%s%s' % (self.site.domain, activate_url) self.assertEmailContains(full_activate_url)
def test_unsubscribe_request_post(self): """ Post the unsubscribe request form. """ subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail, subscribed=True) subscription.save() response = self.client.post( self.unsubscribe_url, {'email_field': self.testemail} ) # Assure we are redirected to "unsubscribe activation email sent" page. self.assertRedirects(response, self.unsubscribe_email_sent_url) """ Check the subscription email. """ self.assertEqual(len(mail.outbox), 1) activate_url = subscription.unsubscribe_activate_url() full_activate_url = 'http://%s%s' % (self.site.domain, activate_url) self.assertEmailContains(full_activate_url)
def test_subscribe_unsubscribed(self): """ After having been unsubscribed, a user should be able to subscribe again. This relates to #5 on GitHub. """ # Create a subscription subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail, subscribed=True) subscription.save() # Unsubscribe response = self.client.post( subscription.unsubscribe_activate_url(), { 'name_field': subscription.name, 'email_field': subscription.email, 'user_activation_code': subscription.activation_code } ) # Assure we are redirected to "unsubscribe activated" page. self.assertRedirects(response, self.unsubscribe_activated_url) subscription = self.get_only_subscription( email_field__exact=self.testemail ) self.assertFalse(subscription.subscribed) self.assertTrue(subscription.unsubscribed) # Resubscribe request response = self.client.post( self.subscribe_url, { 'name_field': subscription.name, 'email_field': subscription.email, } ) # Assure we are redirected to "email sent page" self.assertRedirects(response, self.subscribe_email_sent_url) # self.assertFalse(subscription.subscribed) self.assertTrue(subscription.unsubscribed) # Activate subscription response = self.client.post( subscription.subscribe_activate_url(), { 'name_field': subscription.name, 'email_field': subscription.email, 'user_activation_code': subscription.activation_code } ) # Assure we are redirected to "subscribe activated" page. self.assertRedirects(response, self.subscribe_activated_url) subscription = self.get_only_subscription( email_field__exact=self.testemail ) self.assertTrue(subscription.subscribed) self.assertFalse(subscription.unsubscribed)