From 82754b9af2065beee222ce834004c6d3d9ab2d80 Mon Sep 17 00:00:00 2001 From: Mario Hernandez Date: Fri, 13 Dec 2024 20:49:28 -0300 Subject: [PATCH] test fixes --- django_payments_chile/FlowProvider.py | 4 ---- django_payments_chile/providers.py | 2 ++ tests/test_flowprovider.py | 33 ++++++++++++++++++++------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/django_payments_chile/FlowProvider.py b/django_payments_chile/FlowProvider.py index 41acea2..521d70b 100644 --- a/django_payments_chile/FlowProvider.py +++ b/django_payments_chile/FlowProvider.py @@ -7,10 +7,6 @@ from payments.core import BasicProvider, get_base_url from payments.forms import PaymentForm as BasePaymentForm -# from pyflowcl import Payment as FlowPayment -# from pyflowcl import Refund as FlowRefund -# from pyflowcl.Clients import ApiClient - class FlowProvider(BasicProvider): """ diff --git a/django_payments_chile/providers.py b/django_payments_chile/providers.py index be68c74..35e0dc2 100644 --- a/django_payments_chile/providers.py +++ b/django_payments_chile/providers.py @@ -2,3 +2,5 @@ # from .KhipuProvider import KhipuProvider # noqa # from .PaykuProvider import PaykuProvider # noqa + +__all__ = ["FlowProvider"] diff --git a/tests/test_flowprovider.py b/tests/test_flowprovider.py index 7c5d087..5b7248e 100644 --- a/tests/test_flowprovider.py +++ b/tests/test_flowprovider.py @@ -1,7 +1,8 @@ from unittest import TestCase from unittest.mock import Mock, patch -from payments import PaymentStatus, RedirectNeeded +import requests +from payments import PaymentError, PaymentStatus, RedirectNeeded from django_payments_chile.FlowProvider import FlowProvider @@ -44,11 +45,7 @@ def get_success_url(self): return "http://mi-app.cl/exito" -class TestException(Exception): - pass - - -class TestFlowProviderV3(TestCase): +class TestFlowProviderLive(TestCase): def test_provider_create_session_success(self): payment = Payment() provider = FlowProvider(api_key=API_KEY, api_secret=API_SECRET) @@ -73,10 +70,10 @@ def test_provider_create_session_error(self): with patch("django_payments_chile.FlowProvider.requests.post") as mock_post: # Simulate an error response mock_response = Mock() - mock_response.raise_for_status.side_effect = TestException("Error occurred") + mock_response.raise_for_status.side_effect = requests.exceptions.RequestException("Error occurred") mock_post.return_value = mock_response - with self.assertRaises(TestException): + with self.assertRaises(PaymentError): provider.get_form(payment) self.assertEqual(payment.status, PaymentStatus.ERROR) @@ -103,3 +100,23 @@ def test_provider_transaction_id_set(self): provider.get_form(payment) self.assertEqual(payment.transaction_id, "TOKEN_ID") + + +class TestFlowProviderSandbox(TestCase): + def test_provider_create_session_success(self): + payment = Payment() + provider = FlowProvider(api_key=API_KEY, api_secret=API_SECRET, api_endpoint="sandbox") + with patch("django_payments_chile.FlowProvider.requests.post") as mock_post: + # Configure mock response + mock_response = Mock() + mock_response.raise_for_status.return_value = None # Simulates no exception raised + mock_response.json.return_value = {"url": "https://flow.cl", "token": "TOKEN_ID", "flowOrder": "ORDER_ID"} + mock_post.return_value = mock_response + + with self.assertRaises(RedirectNeeded): + provider.get_form(payment) + + self.assertEqual(payment.status, PaymentStatus.WAITING) + self.assertEqual(payment.attrs.respuesta_flow["url"], "https://flow.cl") + self.assertEqual(payment.attrs.respuesta_flow["token"], "TOKEN_ID") + self.assertEqual(payment.attrs.respuesta_flow["flowOrder"], "ORDER_ID")