"""Unit tests for request util.""" import pytest from ledger.constants.constants import ERROR_INVALID_LIMIT_OFFSET from ledger.constants.error import ERROR_POST_REQUEST_DUPLICATE_RECORDS from ledger.utils.request import ( validate_pagination_params, validate_post_request_contains_unique_data, ) def test_validate_pagination_params_success(): """Test validate_pagination_params when all parameters are valid.""" params = {'limit': 1, 'offset': 0} expected_response = {'limit': 1, 'offset': 0} res = validate_pagination_params(**params) assert res == expected_response def test_validate_pagination_params_error(): """Test validate_pagination_params for an invalid params.""" with pytest.raises(Exception, match=ERROR_INVALID_LIMIT_OFFSET): params = {'limit': 'test', 'offset': 0} validate_pagination_params(**params) def test_validate_post_request_contains_unique_data( mock_bulk_ledger_correction_request_body, ): """Test _validate_post_request_contains_unique_data function. if request body contains unique data. """ mock_post_request = mock_bulk_ledger_correction_request_body res = validate_post_request_contains_unique_data(mock_post_request) assert res is True def test_validate_post_request_contains_non_unique_data( mock_bulk_ledger_correction_request_body, ): """Test _validate_post_request_contains_unique_data function. if request body contains non-unique data. """ mock_post_request = mock_bulk_ledger_correction_request_body mock_post_request.append(mock_bulk_ledger_correction_request_body[0]) with pytest.raises(Exception) as excinfo: validate_post_request_contains_unique_data(mock_post_request) (msg,) = excinfo.value.args assert msg == ERROR_POST_REQUEST_DUPLICATE_RECORDS.format( mock_bulk_ledger_correction_request_body[0] )