Skip to content

Commit ab0fcf0

Browse files
author
Tom Hendrikx
committed
Fix the BalanceTRansactions resource
1 parent 28f7d5b commit ab0fcf0

File tree

5 files changed

+66
-17
lines changed

5 files changed

+66
-17
lines changed

mollie/api/objects/balance.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,4 @@ def get_report(self, **params: Any) -> BalanceReport:
6868
def get_transactions(self, **params: Any) -> ObjectList:
6969
from ..resources import BalanceTransactions
7070

71-
return BalanceTransactions(self.client, self).list(params=params)
71+
return BalanceTransactions(self.client, resource_path=f"balances/{self.id}/transactions").list(params=params)

mollie/api/resources/balances.py

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
from typing import TYPE_CHECKING, Any
1+
from typing import Any
22

33
from mollie.api.objects.balance import Balance
44
from mollie.api.objects.balance_report import BalanceReport
55
from mollie.api.objects.balance_transaction import BalanceTransaction
66
from mollie.api.resources.base import ResourceBase, ResourceGetMixin, ResourceListMixin
77

8-
if TYPE_CHECKING:
9-
from ..client import Client
10-
118

129
class Balances(ResourceGetMixin, ResourceListMixin):
1310
RESOURCE_ID_PREFIX: str = "bal_"
@@ -54,16 +51,7 @@ def get_report(self, **params: Any) -> BalanceReport:
5451

5552

5653
class BalanceTransactions(ResourceListMixin):
57-
_balance: "Balance"
58-
59-
def __init__(self, client: "Client", balance: "Balance") -> None:
60-
self._balance = balance
61-
super().__init__(client)
62-
6354
def get_resource_object(self, result: dict) -> BalanceTransaction:
6455
from ..objects.balance_transaction import BalanceTransaction
6556

6657
return BalanceTransaction(result, self.client)
67-
68-
def get_resource_path(self) -> str:
69-
return f"balances/{self._balance.id}/transactions"

tests/responses/balance_transactions_list.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,12 @@
3232
"type": "text/html"
3333
},
3434
"self": {
35-
"href": "https://api.mollie.com/v2/balances/bal_gVMhHKqSSRYJyPsuoPNFH/transactions?limit=5",
35+
"href": "https://api.mollie.com/v2/balances/bal_gVMhHKqSSRYJyPsuoPNFH/transactions?limit=1",
3636
"type": "application/hal+json"
3737
},
3838
"previous": null,
39-
"next": null
39+
"next": {
40+
"href": "https://api.mollie.com/v2/balances/bal_gVMhHKqSSRYJyPsuoPNFH/transactions?limit=1&from=baltr_QM24QwzUWR4ev4Xfgyt29B"
41+
}
4042
}
41-
}
43+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"count": 1,
3+
"_embedded": {
4+
"balance_transactions": [
5+
{
6+
"resource": "balance_transaction",
7+
"id": "baltr_QM24QwzUWR4ev4Xfgyt29B",
8+
"type": "refund",
9+
"resultAmount": {
10+
"value": "-10.33",
11+
"currency": "EUR"
12+
},
13+
"initialAmount": {
14+
"value": "-10.00",
15+
"currency": "EUR"
16+
},
17+
"deductions": {
18+
"value": "-0.25",
19+
"currency": "EUR"
20+
},
21+
"createdAt": "2021-01-10T12:06:28+00:00",
22+
"context": {
23+
"paymentId": "tr_7UhSN1zuXT",
24+
"refundId": "re_4qqhO89gsX"
25+
}
26+
}
27+
]
28+
},
29+
"_links": {
30+
"documentation": {
31+
"href": "https://docs.mollie.com/reference/v2/balances-api/list-balance-transactions",
32+
"type": "text/html"
33+
},
34+
"self": {
35+
"href": "https://api.mollie.com/v2/balances/bal_gVMhHKqSSRYJyPsuoPNFH/transactions?limit=1&from=baltr_QM24QwzUWR4ev4Xfgyt29B",
36+
"type": "application/hal+json"
37+
},
38+
"previous": null,
39+
"next": null
40+
}
41+
}

tests/test_balances.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,24 @@ def test_get_balance_transactions(client, response):
9595
assert balance_transaction.context == {"paymentId": "tr_7UhSN1zuXS", "refundId": "re_4qqhO89gsT"}
9696

9797

98+
def test_list_balance_transactions(client, response):
99+
"""Get a list of balance transactions."""
100+
response.get(f"https://api.mollie.com/v2/balances/{BALANCE_ID}", "balance_single")
101+
response.get(f"https://api.mollie.com/v2/balances/{BALANCE_ID}/transactions", "balance_transactions_list")
102+
response.get(
103+
f"https://api.mollie.com/v2/balances/{BALANCE_ID}/transactions?limit=1&from=baltr_QM24QwzUWR4ev4Xfgyt29B",
104+
"balance_transactions_list_more",
105+
)
106+
107+
balance = client.balances.get(BALANCE_ID)
108+
transactions = balance.get_transactions()
109+
assert_list_object(transactions, BalanceTransaction, 1)
110+
111+
assert transactions.has_next() is True
112+
more_transactions = transactions.get_next()
113+
assert_list_object(more_transactions, BalanceTransaction, 1)
114+
115+
98116
def test_get_balance_invalid_id(client):
99117
"""Test that the balance ID is validated upon retrieving a balance.
100118

0 commit comments

Comments
 (0)