"""Test for the flask request util.""" from unittest.mock import MagicMock from blacklist_manager.constants import pagination as pc from blacklist_manager.utils import pagination def test_get_pagination(monkeypatch): """Test pagination is returned as namedtuple.""" expected_offset = 10 expected_limit = 100 mockRequest = MagicMock() mockRequest.args.get.side_effect = [expected_offset, expected_limit] result = pagination.get_pagination(mockRequest) assert result.offset == expected_offset assert result.limit == expected_limit def test_get_pagination_uses_defaults(monkeypatch): """Test pagination is returned as named tuple for default values.""" mockRequest = MagicMock() mockRequest.args.get.side_effect = [None, None] result = pagination.get_pagination(mockRequest) assert result.offset == pc.PAGE_OFFSET_DEFAULT assert result.limit == pc.PAGE_LIMIT_DEFAULT def test_get_pagination_handles_non_ints(monkeypatch): """Test pagination handles non ints.""" mockRequest = MagicMock() mockRequest.args.get.side_effect = ['not', 'number'] result = pagination.get_pagination(mockRequest) assert result.offset == pc.PAGE_OFFSET_DEFAULT assert result.limit == pc.PAGE_LIMIT_DEFAULT