Skip to content
Merged
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
14 changes: 0 additions & 14 deletions barte/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,20 +103,6 @@ def create_card_token(self, card_data: Dict[str, Any]) -> CardToken:
data_class=CardToken, data=response.json(), config=DACITE_CONFIG
)

def charge_with_card_token(self, token_id: str, data: Dict[str, Any]) -> Charge:
"""Create a charge using an existing card token"""
endpoint = f"{self.base_url}/v1/charges"

transaction_data = {
**data,
"payment_method": "credit_card",
"card_token": token_id,
}

response = requests.post(endpoint, headers=self.headers, json=transaction_data)
response.raise_for_status()
return from_dict(data_class=Charge, data=response.json(), config=DACITE_CONFIG)

def create_pix_charge(self, data: Dict[str, Any]) -> PixCharge:
"""Create a PIX charge"""
endpoint = f"{self.base_url}/v1/charges"
Expand Down
81 changes: 0 additions & 81 deletions tests/test_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -470,84 +470,3 @@ def test_client_singleton(self):

# Reset singleton for other tests
BarteClient._instance = None

@patch("requests.post")
def test_charge_with_card_token(
self, mock_post, barte_client, mock_charge_response
):
"""Test creating a charge with card token"""
mock_post.return_value.json.return_value = mock_charge_response
mock_post.return_value.raise_for_status = Mock()

token_id = "tok_123456"
charge_data = {
"amount": 1000,
"description": "Test charge with token",
"customer": {
"name": "John Doe",
"tax_id": "123.456.789-00",
"email": "john@example.com",
},
"metadata": {"order_id": "123"},
}

charge = barte_client.charge_with_card_token(token_id, charge_data)

assert isinstance(charge, Charge)
assert charge.value == 1000
assert charge.customer.name == "John Doe"
assert isinstance(charge.paidDate, datetime)

expected_data = {
**charge_data,
"payment_method": "credit_card",
"card_token": token_id,
}
mock_post.assert_called_once_with(
f"{barte_client.base_url}/v1/charges",
headers=barte_client.headers,
json=expected_data,
)

@patch("requests.post")
def test_charge_with_card_token_with_installments(
self, mock_post, barte_client, mock_charge_response
):
"""Test creating a charge with card token and installments"""
response_with_installments = {
**mock_charge_response,
"installments": 3,
"installment_amount": 333,
}
mock_post.return_value.json.return_value = response_with_installments
mock_post.return_value.raise_for_status = Mock()

token_id = "tok_123456"
charge_data = {
"amount": 1000,
"description": "Test charge with installments",
"customer": {
"name": "John Doe",
"tax_id": "123.456.789-00",
"email": "john@example.com",
},
"installments": 3,
}

charge = barte_client.charge_with_card_token(token_id, charge_data)

assert isinstance(charge, Charge)
assert charge.value == 1000
assert charge.customer.name == "John Doe"
assert isinstance(charge.paidDate, datetime)

expected_data = {
**charge_data,
"payment_method": "credit_card",
"card_token": token_id,
}
mock_post.assert_called_once_with(
f"{barte_client.base_url}/v1/charges",
headers=barte_client.headers,
json=expected_data,
)