Пример #1
0
    def test_unsubscribe(self):
        """
        Make sure removing previous subscriptions for a user works
        """
        email = EmailAddress.objects.create(user=self.user)
        email.subscribe(self.newsletter1)
        data = {'email_address': self.user.email}
        form = SubscriptionForm(data=data, user=self.user)
        self.assertTrue(form.is_valid())

        self.assertEqual(1, email.subscriptions.count())
        form.save()
        self.assertEqual(0, email.subscriptions.count())
Пример #2
0
    def test_multi_submit(self):
        """
        Test submitting multiple newsletter subscription changes at once
        """
        email = EmailAddress.objects.create(user=self.user)
        data = {
            'email_address': self.user.email,
            'newsletters': [n.id for n in Newsletter.objects.all()]
        }
        form = SubscriptionForm(data=data, user=self.user)
        self.assertTrue(form.is_valid(), form.errors)

        self.assertEqual(0, email.subscriptions.count())
        form.save()
        self.assertEqual(3, email.subscriptions.count())
Пример #3
0
    def test_multi_submit(self):
        """
        Test submitting multiple newsletter subscription changes at once
        """
        email = EmailAddress.objects.create(user=self.user)
        data = {
            'email_address': self.user.email,
            'newsletters': [n.id for n in Newsletter.objects.all()]
        }
        form = SubscriptionForm(data=data, user=self.user)
        self.assertTrue(form.is_valid(), form.errors)

        self.assertEqual(0, email.subscriptions.count())
        form.save()
        self.assertEqual(3, email.subscriptions.count())
Пример #4
0
    def test_unsubscribe(self):
        """
        Make sure removing previous subscriptions for a user works
        """
        email = EmailAddress.objects.create(user=self.user)
        email.subscribe(self.newsletter1)
        data = {
            'email_address': self.user.email
        }
        form = SubscriptionForm(data=data, user=self.user)
        self.assertTrue(form.is_valid())

        self.assertEqual(1, email.subscriptions.count())
        form.save()
        self.assertEqual(0, email.subscriptions.count())
Пример #5
0
    def test_old_user(self):
        """
        Make sure specifying an existing user modifies that user's subscriptions
        """
        data = {
            'email_address': self.user.email,
            'newsletters': [self.newsletter1.id]
        }
        form = SubscriptionForm(data=data, user=self.user)
        self.assertTrue(form.is_valid())

        self.assertEqual(0, EmailAddress.objects.count())
        form.save()
        self.assertEqual(1, EmailAddress.objects.count())
        self.assertEqual(self.user, EmailAddress.objects.get().user)
        self.assertEqual(self.user.email, EmailAddress.objects.get().email)
Пример #6
0
    def test_new_email(self):
        """
        Make sure saving the form creates a new user
        """
        test_email = '*****@*****.**'
        data = {
            'email_address': test_email,
            'newsletters': [self.newsletter1.id]
        }
        form = SubscriptionForm(data=data)
        self.assertTrue(form.is_valid())

        self.assertEqual(0, EmailAddress.objects.count())
        form.save()
        self.assertEqual(1, EmailAddress.objects.count())
        self.assertEqual(test_email, EmailAddress.objects.get().email)
Пример #7
0
    def test_old_user(self):
        """
        Make sure specifying an existing user modifies that user's subscriptions
        """
        data = {
            'email_address': self.user.email,
            'newsletters': [self.newsletter1.id]
        }
        form = SubscriptionForm(data=data, user=self.user)
        self.assertTrue(form.is_valid())

        self.assertEqual(0, EmailAddress.objects.count())
        form.save()
        self.assertEqual(1, EmailAddress.objects.count())
        self.assertEqual(self.user, EmailAddress.objects.get().user)
        self.assertEqual(self.user.email, EmailAddress.objects.get().email)
Пример #8
0
    def test_new_email(self):
        """
        Make sure saving the form creates a new user
        """
        test_email = '*****@*****.**'
        data = {
            'email_address': test_email,
            'newsletters': [self.newsletter1.id]
        }
        form = SubscriptionForm(data=data)
        self.assertTrue(form.is_valid())

        self.assertEqual(0, EmailAddress.objects.count())
        form.save()
        self.assertEqual(1, EmailAddress.objects.count())
        self.assertEqual(test_email, EmailAddress.objects.get().email)
Пример #9
0
def update_subscriptions(request, template_name='nova/subscribe.html', redirect_url=None, extra_context=None):
    """
    View that allows existing users (or even new users) to modify their subscriptions
    """
    if request.method == "POST":
        form = SubscriptionForm(data=request.POST, user=request.user)
        if form.is_valid():
            form.save()
            return redirect_to(request, redirect_url)
    else:
        form = SubscriptionForm(user=request.user)

    context = {
        'form': form
    }
    if extra_context:
        context.update(extra_context)
    return render_to_response(template_name, context, RequestContext(request))
Пример #10
0
def update_subscriptions(request,
                         template_name='nova/subscribe.html',
                         redirect_url=None,
                         extra_context=None):
    """
    View that allows existing users (or even new users) to modify their subscriptions
    """
    if request.method == "POST":
        form = SubscriptionForm(data=request.POST, user=request.user)
        if form.is_valid():
            form.save()
            return redirect_to(request, redirect_url)
    else:
        form = SubscriptionForm(user=request.user)

    context = {'form': form}
    if extra_context:
        context.update(extra_context)
    return render_to_response(template_name, context, RequestContext(request))