mirror of
https://github.com/GSA/notifications-admin.git
synced 2025-12-11 07:33:36 -05:00
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
import pytest
|
|
|
|
from app.utils.pagination import (
|
|
generate_next_dict,
|
|
generate_pagination_pages,
|
|
generate_previous_dict,
|
|
)
|
|
|
|
|
|
def test_generate_previous_dict(client_request):
|
|
result = generate_previous_dict("main.view_jobs", "foo", 2, {})
|
|
assert "page=1" in result["url"]
|
|
assert result["title"] == "Previous page"
|
|
assert result["label"] == "page 1"
|
|
|
|
|
|
def test_generate_next_dict(client_request):
|
|
result = generate_next_dict("main.view_jobs", "foo", 2, {})
|
|
assert "page=3" in result["url"]
|
|
assert result["title"] == "Next page"
|
|
assert result["label"] == "page 3"
|
|
|
|
|
|
def test_generate_previous_next_dict_adds_other_url_args(client_request):
|
|
result = generate_next_dict(
|
|
"main.view_notifications", "foo", 2, {"message_type": "blah"}
|
|
)
|
|
assert "notifications/blah" in result["url"]
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("total_items", "page_size", "current_page", "expected"),
|
|
[
|
|
(100, 50, 1, {"current": 1, "pages": [1, 2], "last": 2}),
|
|
(450, 50, 1, {"current": 1, "pages": [1, 2, 3, 4, 5, 6, 7, 8, 9], "last": 9}),
|
|
(500, 50, 1, {"current": 1, "pages": [1, 2, 3, 4, 5, 6, 7, 8, 9], "last": 10}),
|
|
(500, 50, 5, {"current": 5, "pages": [1, 2, 3, 4, 5, 6, 7, 8, 9], "last": 10}),
|
|
(500, 50, 6, {"current": 6, "pages": [2, 3, 4, 5, 6, 7, 8, 9, 10], "last": 10}),
|
|
(
|
|
500,
|
|
50,
|
|
10,
|
|
{"current": 10, "pages": [2, 3, 4, 5, 6, 7, 8, 9, 10], "last": 10},
|
|
),
|
|
(
|
|
950,
|
|
50,
|
|
15,
|
|
{"current": 15, "pages": [11, 12, 13, 14, 15, 16, 17, 18, 19], "last": 19},
|
|
),
|
|
],
|
|
)
|
|
def test_generate_pagination_pages(total_items, page_size, current_page, expected):
|
|
result = generate_pagination_pages(total_items, page_size, current_page)
|
|
assert result == expected
|