"""Unit tests for request util.""" import pytest from marshmallow import ValidationError from abacus_schedule.constants.constants import DEFAULT_PAGE_LIMIT, DEFAULT_PAGE_OFFSET from abacus_schedule.utils.request import validate_pagination_params def test_validate_pagination_params_valid(): """Test no error is raised when params are valid.""" params = {'limit': '25', 'offset': '1'} res = validate_pagination_params(**params) assert res == { 'limit': int(params.get('limit')), 'offset': int(params.get('offset')), } def test_validate_pagination_params_valid_default(): """Test default pagination params are valid.""" res = validate_pagination_params() assert res == {'limit': DEFAULT_PAGE_LIMIT, 'offset': DEFAULT_PAGE_OFFSET} def test_validate_pagination_params_invalid_limit(): """Test error is raised when limit is not an int.""" params = {'limit': 'does not exist'} with pytest.raises(ValidationError): validate_pagination_params(**params) def test_validate_pagination_params_invalid_offset(): """Test error is raised when offset is not an int.""" params = {'offset': 'onset'} with pytest.raises(ValidationError): validate_pagination_params(**params)