Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added tests/common/__init__.py
Empty file.
48 changes: 48 additions & 0 deletions tests/common/test_request_service.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import unittest
from unittest.mock import Mock
import json
from transbank.common.request_service import RequestService
from transbank.error.transbank_error import TransbankError
from tests.mocks.responses_api_mocks import responses


class RequestServiceTestCase(unittest.TestCase):

def build_response(self, status_code, body=None):
response = Mock()
response.status_code = status_code
response.text = json.dumps(body) if body is not None else ''
return response

def test_process_response_200_with_body(self):
response = self.build_response(200, responses['commit_status_response'])

self.assertEqual(RequestService.process_response(response), responses['commit_status_response'])

def test_process_response_201_with_body(self):
response = self.build_response(201, responses['create_response'])

self.assertEqual(RequestService.process_response(response), responses['create_response'])

def test_process_response_204_without_body(self):
response = self.build_response(204)

self.assertEqual(RequestService.process_response(response), 204)

def test_process_response_422_with_error_message(self):
response = self.build_response(422, responses['commit_error'])

with self.assertRaises(TransbankError) as context:
RequestService.process_response(response)

self.assertEqual(context.exception.message, responses['commit_error']['error_message'])
self.assertEqual(context.exception.code, 422)

def test_process_response_500_with_description(self):
response = self.build_response(500, responses['general_error'])

with self.assertRaises(TransbankError) as context:
RequestService.process_response(response)

self.assertEqual(context.exception.message, responses['general_error']['description'])
self.assertEqual(context.exception.code, 500)
2 changes: 1 addition & 1 deletion transbank/common/request_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def process_response(cls, response: any):
if not response.text:
return response.status_code
dict_response = json.loads(response.text)
if response.status_code not in (200, 299):
if not 200 <= response.status_code < 300:
if "error_message" in dict_response:
raise TransbankError(message=dict_response["error_message"], code=response.status_code)
if "description" in dict_response:
Expand Down