Skip to content

Commit a45a301

Browse files
committed
Add version arg to create_buyer method to support multiple versions
1 parent 059b864 commit a45a301

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

barte/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,9 @@ def cancel_charge(self, charge_id: str) -> None:
135135
"""Cancel a specific charge"""
136136
self._request("DELETE", f"/v2/charges/{charge_id}")
137137

138-
def create_buyer(self, buyer_data: Dict[str, Any]) -> Buyer:
138+
def create_buyer(self, buyer_data: Dict[str, Any], version: str = "v2") -> Buyer:
139139
"""Create a buyer"""
140-
json_response = self._request("POST", "/v2/buyers", json=buyer_data)
140+
json_response = self._request("POST", f"/{version}/buyers", json=buyer_data)
141141
return from_dict(data_class=Buyer, data=json_response, config=DACITE_CONFIG)
142142

143143
def get_buyer(self, filters: Dict[str, Any]) -> BuyerList:

tests/test_client.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,3 +683,24 @@ def test_get_refund_detail(self, mock_request, barte_client):
683683
params=None,
684684
json=None,
685685
)
686+
687+
@patch("barte.client.requests.Session.request")
688+
def test_create_buyer_with_api_version(
689+
self, mock_request, barte_client, mock_buyer
690+
):
691+
"""Test create a buyer with api version"""
692+
693+
mock_response_obj = Mock()
694+
mock_response_obj.json.return_value = mock_buyer
695+
mock_response_obj.raise_for_status = Mock()
696+
mock_request.return_value = mock_response_obj
697+
698+
barte_client.create_buyer({})
699+
barte_client.create_buyer({}, version="v1")
700+
701+
urls = [args[0][1] for args in mock_request.call_args_list]
702+
703+
assert urls == [
704+
f"{barte_client.base_url}/v2/buyers",
705+
f"{barte_client.base_url}/v1/buyers",
706+
]

0 commit comments

Comments
 (0)