Skip to content

Commit 9883eb0

Browse files
authored
Merge pull request #113 from fintoc-com/master
2.17.0
2 parents 7cc7725 + e96907a commit 9883eb0

7 files changed

Lines changed: 61 additions & 8 deletions

File tree

fintoc/core.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,9 @@
2323
from fintoc.managers.v2 import AccountsManager as AccountsManagerV2
2424
from fintoc.managers.v2 import AccountVerificationsManager
2525
from fintoc.managers.v2 import CheckoutSessionsManager as CheckoutSessionsManagerV2
26-
from fintoc.managers.v2 import (
27-
CustomersManager,
28-
EntitiesManager,
29-
SimulateManager,
30-
TransfersManager,
31-
)
26+
from fintoc.managers.v2 import CustomersManager, EntitiesManager
27+
from fintoc.managers.v2 import PaymentIntentsManager as PaymentIntentsManagerV2
28+
from fintoc.managers.v2 import SimulateManager, TransfersManager
3229
from fintoc.version import __version__
3330

3431

@@ -86,3 +83,4 @@ def __init__(self, client):
8683
self.checkout_sessions = CheckoutSessionsManagerV2(
8784
"/v2/checkout_sessions", client
8885
)
86+
self.payment_intents = PaymentIntentsManagerV2("/v2/payment_intents", client)

fintoc/managers/v2/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@
77
from .customers_manager import CustomersManager
88
from .entities_manager import EntitiesManager
99
from .movements_manager import MovementsManager
10+
from .payment_intents_manager import PaymentIntentsManager
1011
from .simulate_manager import SimulateManager
1112
from .transfers_manager import TransfersManager
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
"""Module to hold the payment_intents manager."""
2+
3+
from fintoc.mixins import ManagerMixin
4+
5+
6+
class PaymentIntentsManager(ManagerMixin):
7+
"""Represents a payment_intents manager."""
8+
9+
resource = "payment_intent"
10+
methods = ["list", "get", "create"]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# pylint: disable=duplicate-code
2+
"""Module to hold the PaymentIntent resource."""
3+
4+
from fintoc.mixins import ResourceMixin
5+
6+
7+
class PaymentIntent(ResourceMixin):
8+
"""Represents a Fintoc Payment Intent."""

fintoc/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
"""Module to hold the version utilities."""
22

3-
version_info = (2, 16, 0)
3+
version_info = (2, 17, 0)
44
__version__ = ".".join([str(x) for x in version_info])

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "fintoc"
3-
version = "2.16.0"
3+
version = "2.17.0"
44
description = "The official Python client for the Fintoc API."
55
authors = ["Daniel Leal <daniel@fintoc.com>", "Nebil Kawas <nebil@uc.cl>"]
66
maintainers = ["Daniel Leal <daniel@fintoc.com>"]

tests/test_integration.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -953,6 +953,42 @@ def test_v2_checkout_session_expire(self):
953953
assert result.method == "post"
954954
assert result.url == f"v2/checkout_sessions/{checkout_session_id}/expire"
955955

956+
def test_v2_payment_intent_list(self):
957+
"""Test getting all payment intents using v2 API."""
958+
payment_intents = list(self.fintoc.v2.payment_intents.list())
959+
960+
assert len(payment_intents) > 0
961+
for payment_intent in payment_intents:
962+
assert payment_intent.method == "get"
963+
assert payment_intent.url == "v2/payment_intents"
964+
965+
def test_v2_payment_intent_get(self):
966+
"""Test getting a specific payment intent using v2 API."""
967+
payment_intent_id = "test_payment_intent_id"
968+
969+
payment_intent = self.fintoc.v2.payment_intents.get(payment_intent_id)
970+
971+
assert payment_intent.method == "get"
972+
assert payment_intent.url == f"v2/payment_intents/{payment_intent_id}"
973+
974+
def test_v2_payment_intent_create(self):
975+
"""Test creating a payment intent using v2 API."""
976+
payment_intent_data = {
977+
"amount": 5000,
978+
"currency": "CLP",
979+
"success_url": "https://example.com/success",
980+
"cancel_url": "https://example.com/cancel",
981+
}
982+
983+
payment_intent = self.fintoc.v2.payment_intents.create(**payment_intent_data)
984+
985+
assert payment_intent.method == "post"
986+
assert payment_intent.url == "v2/payment_intents"
987+
assert payment_intent.json.amount == payment_intent_data["amount"]
988+
assert payment_intent.json.currency == payment_intent_data["currency"]
989+
assert payment_intent.json.success_url == payment_intent_data["success_url"]
990+
assert payment_intent.json.cancel_url == payment_intent_data["cancel_url"]
991+
956992

957993
if __name__ == "__main__":
958994
pytest.main()

0 commit comments

Comments
 (0)