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
1 change: 1 addition & 0 deletions fintoc/managers/v2/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""Init file for the v2 managers module of the SDK."""

from .account_numbers_manager import AccountNumbersManager
from .account_statements_manager import AccountStatementsManager
from .account_verifications_manager import AccountVerificationsManager
from .accounts_manager import AccountsManager
from .checkout_sessions_manager import CheckoutSessionsManager
Expand Down
2 changes: 1 addition & 1 deletion fintoc/managers/v2/account_numbers_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ class AccountNumbersManager(ManagerMixin):
"""Represents an account numbers manager."""

resource = "account_number"
methods = ["list", "get", "update", "create"]
methods = ["list", "get", "update", "create", "delete"]
11 changes: 11 additions & 0 deletions fintoc/managers/v2/account_statements_manager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# pylint: disable=duplicate-code
"""Module to hold the account statements manager."""

from fintoc.mixins import ManagerMixin


class AccountStatementsManager(ManagerMixin):
"""Represents an account statements manager."""

resource = "account_statement"
methods = ["list"]
16 changes: 16 additions & 0 deletions fintoc/managers/v2/accounts_manager.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# pylint: disable=duplicate-code
"""Module to hold the accounts manager."""

from fintoc.managers.v2.account_statements_manager import AccountStatementsManager
from fintoc.managers.v2.movements_manager import MovementsManager
from fintoc.mixins import ManagerMixin

Expand All @@ -13,8 +14,23 @@ class AccountsManager(ManagerMixin):

def __init__(self, path, client):
super().__init__(path, client)
self.__account_statements_manager = None
self.__movements_manager = None

@property
def account_statements(self):
"""Proxies the account statements manager."""
if self.__account_statements_manager is None:
self.__account_statements_manager = AccountStatementsManager(
"/v2/accounts/{account_id}/account_statements",
self._client,
)
return self.__account_statements_manager

@account_statements.setter
def account_statements(self, new_value): # pylint: disable=no-self-use
raise NameError("Attribute name corresponds to a manager")

@property
def movements(self):
"""Proxies the movements manager."""
Expand Down
1 change: 1 addition & 0 deletions fintoc/resources/v2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from .account import Account
from .account_number import AccountNumber
from .account_statement import AccountStatement
from .account_verification import AccountVerification
from .entity import Entity
from .invoice import Invoice
Expand Down
7 changes: 7 additions & 0 deletions fintoc/resources/v2/account_statement.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
"""Module to hold the AccountStatement resource."""

from fintoc.mixins import ResourceMixin


class AccountStatement(ResourceMixin):
"""Represents a Fintoc Account Statement."""
2 changes: 1 addition & 1 deletion fintoc/version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""Module to hold the version utilities."""

version_info = (2, 18, 0)
version_info = (2, 19, 0)
__version__ = ".".join([str(x) for x in version_info])
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "fintoc"
version = "2.18.0"
version = "2.19.0"
description = "The official Python client for the Fintoc API."
authors = ["Daniel Leal <daniel@fintoc.com>", "Nebil Kawas <nebil@uc.cl>"]
maintainers = ["Daniel Leal <daniel@fintoc.com>"]
Expand Down
22 changes: 22 additions & 0 deletions tests/test_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -679,6 +679,14 @@ def test_v2_account_number_update(self):
assert account_number.url == f"v2/account_numbers/{account_number_id}"
assert account_number.json.metadata.test_key == metadata["test_key"]

def test_v2_account_number_delete(self):
"""Test deleting an account number using v2 API."""
account_number_id = "acno_Kasf91034gj1AD"

result = self.fintoc.v2.account_numbers.delete(account_number_id)

assert result == account_number_id

def test_v2_account_verification_list(self):
"""Test getting all account verifications using v2 API."""
account_verifications = list(self.fintoc.v2.account_verifications.list())
Expand Down Expand Up @@ -1052,6 +1060,20 @@ def test_v2_invoice_get(self):
assert invoice.method == "get"
assert invoice.url == f"v2/invoices/{invoice_id}"

def test_v2_account_statements_list(self):
"""Test getting account statements from an account using v2 API."""
account_id = "acc_12345"
account_statements = list(
self.fintoc.v2.accounts.account_statements.list(account_id=account_id)
)

assert len(account_statements) > 0
for account_statement in account_statements:
assert account_statement.method == "get"
assert (
account_statement.url == f"v2/accounts/{account_id}/account_statements"
)


if __name__ == "__main__":
pytest.main()
Loading