def test_create_person_subscription(self): """ Tests the creation of a single law subscription step-by-step, including verification """ person = Person.objects.first() post_vars = self._get_person_subscription_post_vars(person) # Create an instance of a subscribe POST request. request = self.factory.post('/susbcribe') request.user = AnonymousUser() request.POST.update(post_vars) # Call subscribe view response = views.subscribe(request) # Verify Email was sent assert response.content == "Ein Best\xc3\xa4tigungslink wurde soeben an '{}' gesendet.".format( self.EMAIL) assert len(mail.outbox) == 1 # Extract verification urls, key from email body email = mail.outbox.pop() key = self._extract_verify_url(email) # Find Subscription item sub_qs = Subscription.objects.filter( user__email=self.EMAIL, verification__verification_hash=key) assert sub_qs.exists() == True assert sub_qs.count() == 1 # Assert subscription item isn't verified yet subscription_item = sub_qs.first() assert subscription_item.verification.verified == False # Create an instance of a verify POST request. request = self.factory.post('/verify') response = views.verify(request, self.EMAIL, key) assert 'Ihr Abo ist somit best\xc3\xa4tigt und aktiv' in response.content subscription_item.verification.refresh_from_db() assert subscription_item.verification.verified == True # verify that the archive ES is the same as the current content (we have no changes) assert subscription_item.content.get_content( ) == subscription_item.content.retrieve_latest_content() assert len(subscription_item.content.get_content()) == 1
def _prep_subscription(self, post_vars): # Create an instance of a subscribe POST request. request = self.factory.post('/susbcribe') request.user = AnonymousUser() request.POST.update(post_vars) # Call subscribe view response = views.subscribe(request) # Extract verification urls, key from email body email = mail.outbox.pop() key = self._extract_verify_url(email) # Find Subscription item sub_qs = Subscription.objects.filter( user__email=self.EMAIL, verification__verification_hash=key) # Assert subscription item isn't verified yet subscription_item = sub_qs.first() subscription_item.verification.verified = True subscription_item.verification.save() subscription_item.user.verification.verified = True subscription_item.user.verification.save() return subscription_item