1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
import json
from collections import OrderedDict
import pytest
from stripe._stripe_response import StripeResponseBase, StripeResponse
class ResponseTestBase(object):
@pytest.fixture
def mock_headers(self):
return {"idempotency-key": "123456", "request-id": "req_123456"}
@pytest.fixture
def mock_response(self, mock_headers):
code = 200
headers = mock_headers
response = StripeResponseBase(code, headers)
return response
def test_idempotency_key(self, mock_response, mock_headers):
assert mock_response.idempotency_key == mock_headers["idempotency-key"]
def test_request_id(self, mock_response, mock_headers):
assert mock_response.request_id == mock_headers["request-id"]
def test_code(self, mock_response, mock_headers):
assert mock_response.code == 200
def test_headers(self, mock_response, mock_headers):
assert mock_response.headers == mock_headers
class TestStripeResponse(ResponseTestBase):
def test_body(self, mock_response, mock_body):
assert mock_response.body == mock_body
def test_data(self, mock_response, mock_body):
deserialized = json.loads(mock_body, object_pairs_hook=OrderedDict)
assert mock_response.data == deserialized
# Previous assert does not check order, so explicitly check order here
assert list(mock_response.data["metadata"].items()) == list(
deserialized["metadata"].items()
)
@pytest.fixture
def mock_response(self, mock_headers, mock_body):
code = 200
response = StripeResponse(mock_body, code, mock_headers)
return response
@pytest.fixture
def mock_body(self):
return """{
"id": "ch_12345",
"object": "charge",
"amount": 1,
"metadata": {
"one": "1",
"two": "2",
"three": "3",
"four": "4",
"five": "5"
}
}"""
|