Skip to content

Commit 5e22bbe

Browse files
BladieblahTom Hendrikx
authored andcommitted
Add test for Subscription pagination results
1 parent 1d8cbec commit 5e22bbe

File tree

3 files changed

+78
-2
lines changed

3 files changed

+78
-2
lines changed

tests/responses/subscriptions_list.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
},
102102
"previous": null,
103103
"next": {
104-
"href": "https://api.mollie.com/v2/subscriptions?from=sub_mnfbwhMfvo",
104+
"href": "https://api.mollie.com/v2/subscriptions?from=sub_rVKGtNd6s6",
105105
"type": "application/hal+json"
106106
},
107107
"documentation": {
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"count": 1,
3+
"_embedded": {
4+
"subscriptions": [
5+
{
6+
"resource": "subscription",
7+
"id": "sub_rVKGtNd6s6",
8+
"mode": "live",
9+
"createdAt": "2018-06-01T12:23:34+00:00",
10+
"status": "active",
11+
"amount": {
12+
"value": "35.00",
13+
"currency": "EUR"
14+
},
15+
"times": 4,
16+
"interval": "3 months",
17+
"description": "Quarterly payment",
18+
"method": "ideal",
19+
"webhookUrl": "https://webshop.example.org/subscriptions/webhook",
20+
"_links": {
21+
"self": {
22+
"href": "https://api.mollie.com/v2/customers/cst_8wmqcHMN4U/subscriptions/sub_rVKGtNd6s6",
23+
"type": "application/hal+json"
24+
},
25+
"profile": {
26+
"href": "https://api.mollie.com/v2/profiles/pfl_URR55HPMGo",
27+
"type": "application/hal+json"
28+
},
29+
"customer": {
30+
"href": "https://api.mollie.com/v2/customers/cst_8wmqcHMN4U",
31+
"type": "application/hal+json"
32+
}
33+
}
34+
}
35+
]
36+
},
37+
"_links": {
38+
"self": {
39+
"href": "https://api.mollie.com/v2/subscriptions?from=sub_rVKGtNd6s6",
40+
"type": "application/hal+json"
41+
},
42+
"previous": {
43+
"href": "https://api.mollie.com/v2/subscriptions",
44+
"type": "application/hal+json"
45+
},
46+
"next": null,
47+
"documentation": {
48+
"href": "https://docs.mollie.com/reference/v2/subscriptions-api/list-all-subscriptions",
49+
"type": "text/html"
50+
}
51+
}
52+
}

tests/test_subscriptions.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,35 @@
1+
from responses import matchers
2+
13
from mollie.api.objects.subscription import Subscription
24

35
from .utils import assert_list_object
46

57

6-
def test_list_customers(client, response):
8+
def test_list_subscriptions(client, response):
79
"""Retrieve a list of existing subscriptions."""
810
response.get("https://api.mollie.com/v2/subscriptions", "subscriptions_list")
911

1012
subscriptions = client.subscriptions.list()
1113
assert_list_object(subscriptions, Subscription)
14+
15+
16+
def test_list_subscription_pagination(client, response):
17+
"""Retrieve a list of paginated subscriptions."""
18+
response.get(
19+
"https://api.mollie.com/v2/subscriptions", "subscriptions_list", match=[matchers.query_string_matcher("")]
20+
)
21+
response.get(
22+
"https://api.mollie.com/v2/subscriptions",
23+
"subscriptions_list_more",
24+
match=[matchers.query_string_matcher("from=sub_rVKGtNd6s6")],
25+
)
26+
27+
first_subscriptions_page = client.subscriptions.list()
28+
assert first_subscriptions_page.has_previous() is False
29+
assert first_subscriptions_page.has_next() is True
30+
31+
second_subscriptions_page = first_subscriptions_page.get_next()
32+
assert_list_object(second_subscriptions_page, Subscription)
33+
34+
subscription = next(second_subscriptions_page)
35+
assert subscription.id == "sub_rVKGtNd6s6"

0 commit comments

Comments
 (0)