def test_payment_view_should_create_a_payment_for_the_current_user_and_redirect_to_payment_gateway( self): response = PaymentView.as_view()(self.request, self.member.id) self.assertTrue(Payment.objects.filter(member=self.member).exists()) self.assertEqual(302, response.status_code) expected_url = settings.PAGSEGURO_WEBCHECKOUT + "xpto123" self.assertEqual(expected_url, response["Location"])
def test_payment_view_should_redirect_to_dashboard_if_it_fails_to_create_the_transaction(self): class ResponseMock(object): content = None @property def ok(self): return False requests_original = views.requests try: views.requests.post = lambda self, *args, **kwargs: ResponseMock() request = RequestFactory().get("/", {}) v = PaymentView() v._notify_staff = lambda u: None response = v.dispatch(request, self.member.id) self.assertFalse(Payment.objects.filter(member=self.member).exists()) self.assertEqual(302, response.status_code) self.assertEqual("/", response["Location"]) finally: views.requests = requests_original
def test_payment_view_should_redirect_to_dashboard_if_it_fails_to_create_the_transaction( self): class ResponseMock(object): content = None @property def ok(self): return False requests_original = views.requests try: views.requests.post = lambda self, *args, **kwargs: ResponseMock() request = RequestFactory().get("/", {}) v = PaymentView() v._notify_staff = lambda u: None response = v.dispatch(request, self.member.id) self.assertFalse( Payment.objects.filter(member=self.member).exists()) self.assertEqual(302, response.status_code) self.assertEqual("/", response["Location"]) finally: views.requests = requests_original
# -*- coding: utf-8 -*- from django.conf.urls import patterns, url from app.payment.views import NotificationView, PaymentView urlpatterns = patterns( '', url(r'^notification/$', NotificationView.as_view(), name='payment-notification'), url(r'^(?P<member_id>[\d]+)/$', PaymentView.as_view(), name='payment'), )
def test_payment_view_should_create_a_payment_for_the_user_type(self): self.assertEqual(Payment.objects.filter(member=self.member).count(), 0) PaymentView.as_view()(self.request, self.member.id) self.assertEqual(Payment.objects.filter(member=self.member).count(), 1)
def test_payment_view_should_create_a_payment_for_the_current_user_and_redirect_to_payment_gateway(self): response = PaymentView.as_view()(self.request, self.member.id) self.assertTrue(Payment.objects.filter(member=self.member).exists()) self.assertEqual(302, response.status_code) expected_url = settings.PAGSEGURO_WEBCHECKOUT + "xpto123" self.assertEqual(expected_url, response["Location"])
def test_payment_view_should_create_a_payment_for_the_user_type(self): PaymentView.as_view()(self.request, self.member.id) transaction = Transaction.objects.get(payment__member=self.member) self.assertEqual(transaction.payment.type.price, transaction.price)
def test_generate_transaction(self): payment = Payment.objects.create(member=self.member, type=PaymentType.objects.get(id=1)) transaction = PaymentView().set_payment_code(payment) self.assertEqual("xpto123", transaction.code)
from django.conf.urls import url from app.payment.views import PaymentView, PaymentCallbackView urlpatterns = [ url(r'^$', PaymentView.as_view(), name='payment'), url(r'^callback/$', PaymentCallbackView.as_view(), name='payment_callback'), ]