def test_subscribe_request_activate_form_loophole(self): """ Prevent updating to unconfirmed email address. (#108) """ subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail) subscription.save() activate_url = subscription.subscribe_activate_url() response = self.client.get(activate_url) self.assertInContext(response, 'form', UpdateForm) self.assertContains(response, subscription.activation_code) testname2 = 'Test Name2' testemail2 = '*****@*****.**' response = self.client.post(activate_url, { 'name_field': testname2, 'email_field': testemail2, 'user_activation_code': subscription.activation_code }) # Assure we are redirected to "update activated" page. self.assertRedirects(response, self.subscribe_activated_url) subscription = Subscription.objects.get(pk=subscription.pk) self.assertTrue(subscription) self.assertTrue(subscription.subscribed) self.assertEqual(subscription.email, self.testemail)
def test_subscribe_request_activate_form_loophole(self): """ Prevent updating to unconfirmed email address. (#108) """ subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail) subscription.save() activate_url = subscription.subscribe_activate_url() response = self.client.get(activate_url) self.assertInContext(response, 'form', UpdateForm) self.assertContains(response, subscription.activation_code) testname2 = 'Test Name2' testemail2 = '*****@*****.**' response = self.client.post( activate_url, { 'name_field': testname2, 'email_field': testemail2, 'user_activation_code': subscription.activation_code }) # Assure we are redirected to "update activated" page. self.assertRedirects(response, self.subscribe_activated_url) subscription = Subscription.objects.get(pk=subscription.pk) self.assertTrue(subscription) self.assertTrue(subscription.subscribed) self.assertEqual(subscription.email, self.testemail)
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_subscribe_request_activate(self): """ Test subscription activation. """ subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail) subscription.save() time.sleep(WAIT_TIME) self.assertFalse(subscription.subscribed) activate_url = subscription.subscribe_activate_url() self.assertTrue(activate_url) response = self.client.get(activate_url) self.assertInContext(response, 'form', UpdateForm) self.assertContains(response, subscription.activation_code) response = self.client.post( activate_url, { 'name_field': 'Test Name', 'email_field': self.testemail, '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) dt = (subscription.subscribe_date - subscription.create_date).seconds self.assertBetween(dt, WAIT_TIME, WAIT_TIME + 1)
def test_subscribe_request_activate(self): """ Test subscription activation. """ subscription = Subscription(newsletter=self.n, name=self.testname, email=self.testemail) subscription.save() time.sleep(WAIT_TIME) self.assertFalse(subscription.subscribed) activate_url = subscription.subscribe_activate_url() self.assertTrue(activate_url) response = self.client.get(activate_url) self.assertInContext(response, 'form', UpdateForm) self.assertContains(response, subscription.activation_code) response = self.client.post( activate_url, { 'name_field': 'Test Name', 'email_field': self.testemail, '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) dt = (subscription.subscribe_date - subscription.create_date).seconds self.assertBetween(dt, WAIT_TIME, WAIT_TIME + 1)
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)