def test_registration_subscribe_to_newsletter(self): options.set("auth.allow-registration", True) with self.feature("auth:register"): resp = self.client.post( self.path, { "username": "******", "password": "******", "name": "Foo Bar", "op": "register", "subscribe": "1", }, ) assert resp.status_code == 302 user = User.objects.get( username="******") assert user.email == "*****@*****.**" assert user.check_password("foobar") assert user.name == "Foo Bar" results = newsletter.get_subscriptions(user)["subscriptions"] assert len(results) == 1 assert results[0].list_id == newsletter.get_default_list_id() assert results[0].subscribed assert not results[0].verified
def add_email(email, user, subscribe_newsletter=False): """ Adds an email to user account Can be either primary or secondary """ # Bad email if email is None: raise InvalidEmailError try: with transaction.atomic(): new_email = UserEmail.objects.create(user=user, email=email) except IntegrityError: raise DuplicateEmailError else: new_email.set_hash() new_email.save() user.send_confirm_email_singular(new_email) # Update newsletter subscription and mark as unverified if subscribe_newsletter: newsletter.create_or_update_subscription( user=user, verified=False, list_id=newsletter.get_default_list_id(), ) return new_email
def test_default_subscription(self): self.get_valid_response(self.user.id, method="post", subscribed=True, status_code=204) results = newsletter.get_subscriptions(self.user)["subscriptions"] assert len(results) == 1 assert results[0].list_id == newsletter.get_default_list_id() assert results[0].subscribed assert results[0].verified
def post(self, request, user): """ Configure Newsletter Subscription ````````````````````````````````` Update the default newsletter subscription. :param boolean subscribed: should be subscribed to newsletter :auth: required """ validator = DefaultNewsletterValidator(data=request.DATA) if not validator.is_valid(): return self.respond(validator.errors, status=400) result = validator.object email = UserEmail.get_primary_email(user) kwargs = { 'subscribed': result['subscribed'], 'verified': email.is_verified, 'list_id': newsletter.get_default_list_id(), } if not result['subscribed']: kwargs['unsubscribed_date'] = timezone.now() else: kwargs['subscribed_date'] = timezone.now() newsletter.create_or_update_subscription(user, **kwargs) user.update( flags=F('flags').bitand(~User.flags.newsletter_consent_prompt), ) return self.respond(status=204)
def test_default_subscription(self): response = self.client.post(self.url, data={"subscribed": True}) assert response.status_code == 204, response.content results = newsletter.get_subscriptions(self.user)["subscriptions"] assert len(results) == 1 assert results[0].list_id == newsletter.get_default_list_id() assert results[0].subscribed assert results[0].verified
def save(self, commit=True): user = super(RegistrationForm, self).save(commit=False) user.email = user.username user.set_password(self.cleaned_data['password']) if commit: user.save() if self.cleaned_data.get('subscribe'): newsletter.create_or_update_subscription(user, list_id=newsletter.get_default_list_id()) return user
def test_default_subscription(self): response = self.client.post(self.url, data={ 'subscribed': True, }) assert response.status_code == 204, response.content results = newsletter.get_subscriptions(self.user)['subscriptions'] assert len(results) == 1 assert results[0].list_id == newsletter.get_default_list_id() assert results[0].subscribed assert results[0].verified
def test_add_secondary_email_with_newsletter_subscribe(self): response = self.client.post(self.url, data={ 'email': '*****@*****.**', 'newsletter': '1', }) assert response.status_code == 201 assert UserEmail.objects.filter( user=self.user, email='*****@*****.**').exists() results = newsletter.get_subscriptions(self.user)['subscriptions'] assert len(results) == 1 assert results[0].list_id == newsletter.get_default_list_id() assert results[0].subscribed assert not results[0].verified
def test_registration_subscribe_to_newsletter(self): options.set('auth.allow-registration', True) with self.feature('auth:register'): resp = self.client.post( self.path, { 'username': '******', 'password': '******', 'name': 'Foo Bar', 'op': 'register', 'subscribe': '1', } ) assert resp.status_code == 302 user = User.objects.get(username='******') assert user.email == '*****@*****.**' assert user.check_password('foobar') assert user.name == 'Foo Bar' results = newsletter.get_subscriptions(user)['subscriptions'] assert len(results) == 1 assert results[0].list_id == newsletter.get_default_list_id() assert results[0].subscribed assert not results[0].verified
def test_registration_subscribe_to_newsletter(self): options.set('auth.allow-registration', True) with self.feature('auth:register'): resp = self.client.post( self.path, { 'username': '******', 'password': '******', 'name': 'Foo Bar', 'op': 'register', 'subscribe': '1', }) assert resp.status_code == 302 user = User.objects.get( username='******') assert user.email == '*****@*****.**' assert user.check_password('foobar') assert user.name == 'Foo Bar' results = newsletter.get_subscriptions(user)['subscriptions'] assert len(results) == 1 assert results[0].list_id == newsletter.get_default_list_id() assert results[0].subscribed assert not results[0].verified