示例#1
0
    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
示例#2
0
    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