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
Expand Up @@ -4,5 +4,6 @@
from .account_verifications_manager import AccountVerificationsManager
from .accounts_manager import AccountsManager
from .entities_manager import EntitiesManager
from .movements_manager import MovementsManager
from .simulate_manager import SimulateManager
from .transfers_manager import TransfersManager
20 changes: 20 additions & 0 deletions fintoc/managers/v2/accounts_manager.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# pylint: disable=duplicate-code
"""Module to hold the accounts manager."""

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


Expand All @@ -8,3 +10,21 @@ class AccountsManager(ManagerMixin):

resource = "account"
methods = ["list", "get", "create"]

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

@property
def movements(self):
"""Proxies the movements manager."""
if self.__movements_manager is None:
self.__movements_manager = MovementsManager(
"/v2/accounts/{account_id}/movements",
self._client,
)
return self.__movements_manager

@movements.setter
def movements(self, new_value): # pylint: disable=no-self-use
raise NameError("Attribute name corresponds to a manager")
10 changes: 10 additions & 0 deletions fintoc/managers/v2/movements_manager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"""Module to hold the movements manager."""

from fintoc.mixins import ManagerMixin


class MovementsManager(ManagerMixin):
"""Represents a movements manager."""

resource = "movement"
methods = ["list", "get"]
1 change: 1 addition & 0 deletions fintoc/resources/v2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
from .account_number import AccountNumber
from .account_verification import AccountVerification
from .entity import Entity
from .movement import Movement
from .transfer import Transfer
8 changes: 8 additions & 0 deletions fintoc/resources/v2/movement.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# pylint: disable=duplicate-code
"""Module to hold the Movement resource."""

from fintoc.mixins import ResourceMixin


class Movement(ResourceMixin):
"""Represents a Fintoc Movement."""
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, 10, 0)
version_info = (2, 11, 0)
__version__ = ".".join([str(x) for x in version_info])
3 changes: 1 addition & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "fintoc"
version = "2.10.0"
version = "2.11.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 Expand Up @@ -36,4 +36,3 @@ pytest-cov = "^2.12.1"

[tool.poetry.group.test.dependencies]
freezegun = "^1.5.1"

22 changes: 22 additions & 0 deletions tests/test_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,28 @@ def test_v2_transfer_return(self):
assert result.url == "v2/transfers/return"
assert result.json.transfer_id == transfer_id

def test_v2_account_movements_list(self):
"""Test getting movements from an account using v2 API."""
account_id = "test_account_id"
movements = list(self.fintoc.v2.accounts.movements.list(account_id=account_id))

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

def test_v2_account_movement_get(self):
"""Test getting a specific movement from an account using v2 API."""
account_id = "test_account_id"
movement_id = "test_movement_id"

movement = self.fintoc.v2.accounts.movements.get(
movement_id, account_id=account_id
)

assert movement.method == "get"
assert movement.url == f"v2/accounts/{account_id}/movements/{movement_id}"


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