-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_pagination.py
More file actions
85 lines (65 loc) · 2.06 KB
/
test_pagination.py
File metadata and controls
85 lines (65 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import pytest
from mpt_api_client.http.models import Pagination
def test_default_page(): # noqa: WPS218
pagination = Pagination()
assert pagination.limit == 0
assert pagination.offset == 0
assert pagination.total == 0
assert pagination.has_next() is False
assert pagination.num_page() == 0
assert pagination.total_pages() == 0
assert pagination.next_offset() == 0
def test_pagination_initialization():
pagination = Pagination(limit=10, offset=0, total=100)
assert pagination.limit == 10
assert pagination.offset == 0
assert pagination.total == 100
@pytest.mark.parametrize(
("num_page", "total_pages", "expected_has_next"),
[
(0, 0, False),
(1, 100, True),
(100, 1, False),
],
)
def test_has_next(mocker, num_page, total_pages, expected_has_next):
pagination = Pagination()
mocker.patch.object(pagination, "num_page", return_value=num_page)
mocker.patch.object(pagination, "total_pages", return_value=total_pages)
assert pagination.has_next() == expected_has_next
@pytest.mark.parametrize(
("limit", "offset", "expected_page"),
[
(0, 0, 0),
(1, 0, 0),
(5, 5, 1),
(10, 990, 99),
(245, 238, 0)
],
)
def test_num_page(limit, offset, expected_page):
pagination = Pagination(limit=limit, offset=offset, total=5)
assert pagination.num_page() == expected_page
@pytest.mark.parametrize(
("limit", "total", "expected_total_pages"),
[
(0, 0, 0),
(0, 2, 0),
(1, 1, 1),
(1, 2, 2),
],
)
def test_total_pages(limit, total, expected_total_pages):
pagination = Pagination(limit=limit, offset=0, total=total)
assert pagination.total_pages() == expected_total_pages
@pytest.mark.parametrize(
("limit", "offset", "expected_next_offset"),
[
(0, 0, 0),
(1, 0, 1),
(1, 2, 3),
],
)
def test_next_offset(limit, offset, expected_next_offset):
pagination = Pagination(limit=limit, offset=offset, total=3)
assert pagination.next_offset() == expected_next_offset