X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/08cbe099b8b62c2f48d2ff9865716c7d52ec22d2..733a35d165f8fa095c3dfcbb74ac7aae3c320a2e:/src/paypal/tests.py?ds=inline diff --git a/src/paypal/tests.py b/src/paypal/tests.py index e38fd8476..52c57473e 100644 --- a/src/paypal/tests.py +++ b/src/paypal/tests.py @@ -1,9 +1,9 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # from django.contrib.auth.models import User -from mock import MagicMock, Mock, patch, DEFAULT +from unittest import skip +from unittest.mock import MagicMock, Mock, patch, DEFAULT from catalogue.test_utils import WLTestCase from .models import BillingAgreement, BillingPlan from .rest import user_is_subscribed @@ -60,15 +60,18 @@ class PaypalTests(WLTestCase): def tearDownClass(cls): cls.user.delete() + @skip("Changing the flow.") def test_paypal_form(self): response = self.client.get('/paypal/form/') self.assertEqual(response.status_code, 200) + @skip("Changing the flow.") def test_paypal_form_unauthorized(self): """Legacy flow: only allow payment for logged-in users.""" response = self.client.post('/paypal/form/', {"amount": "0"}) self.assertEqual(response.status_code, 403) + @skip("Changing the flow.") def test_paypal_form_invalid(self): """Paypal form: error on bad input.""" self.client.login(username='test', password='test') @@ -79,6 +82,7 @@ class PaypalTests(WLTestCase): len(response.context['form'].errors['amount']), 1) + @skip("Changing the flow.") @patch.multiple('paypalrestsdk', BillingPlan=BillingPlanMock, BillingAgreement=BillingAgreementMock, @@ -100,6 +104,7 @@ class PaypalTests(WLTestCase): # No BillingAgreement created in our DB yet. self.assertEqual(BillingAgreement.objects.all().count(), 0) + @skip("Changing the flow.") @patch('paypalrestsdk.BillingPlan', BillingPlanMock) def test_paypal_form_error(self): """On PayPal error, plan does not get created.""" @@ -129,6 +134,7 @@ class PaypalTests(WLTestCase): # But now the plan should be created. self.assertEqual(BillingPlan.objects.all().count(), 1) + @skip("Changing the flow.") @patch.multiple('paypalrestsdk', BillingPlan=BillingPlanMock, BillingAgreement=BillingAgreementMock, @@ -167,11 +173,15 @@ class PaypalTests(WLTestCase): self.client.login(username='test', password='test') BillingPlan.objects.create(amount=100) response = self.client.get('/paypal/app-return/?token=secret-token') - self.assertRedirects(response, 'wolnelekturyapp://paypal_return') + self.assertRedirects( + response, 'wolnelekturyapp://paypal_return', + fetch_redirect_response=False) # Repeated returns will not generate further agreements. response = self.client.get('/paypal/app-return/?token=secret-token') - self.assertRedirects(response, 'wolnelekturyapp://paypal_return') + self.assertRedirects( + response, 'wolnelekturyapp://paypal_return', + fetch_redirect_response=False) self.assertEqual(BillingAgreement.objects.all().count(), 1) self.assertTrue(user_is_subscribed(self.user)) @@ -185,7 +195,9 @@ class PaypalTests(WLTestCase): execute=Mock(return_value=Mock(id=None)))): self.client.get('/paypal/app-return/?token=secret-token') response = self.client.get('/paypal/app-return/?token=secret-token') - self.assertRedirects(response, 'wolnelekturyapp://paypal_error') + self.assertRedirects( + response, 'wolnelekturyapp://paypal_error', + fetch_redirect_response=False) # No agreement created in our DB if not executed successfully. self.assertEqual(BillingAgreement.objects.all().count(), 0) @@ -195,7 +207,9 @@ class PaypalTests(WLTestCase): execute=BillingAgreementMock.execute, find=Mock(side_effect=ResourceNotFound(None)))): response = self.client.get('/paypal/app-return/?token=secret-token') - self.assertRedirects(response, 'wolnelekturyapp://paypal_return') + self.assertRedirects( + response, 'wolnelekturyapp://paypal_return', + fetch_redirect_response=False) # Now the agreement exists in our DB, but is not active. self.assertEqual([b.active for b in BillingAgreement.objects.all()], [False])