"""Test for the Api base class.""" from unittest.mock import MagicMock from podcast.models.api_base import ApiBase def test_get_paginated_all(): """Test the get all paginated results 2 pages.""" return_value = { 'items': ['1'], 'pagination': {'total_records': 503} } base = ApiBase(podcast_network_id=1) base._paginated_get = MagicMock(return_value=return_value) result = base._paginated_get_all('url') assert result == ['1', '1'] base._paginated_get.assert_called_with('url?page=2&per_page=500') def test_get_paginated_all_upper_bound(): """Test the get all paginated results 2 pages correctly handles upward bound.""" return_value = { 'items': ['1'], 'pagination': {'total_records': 1000} } base = ApiBase(podcast_network_id=1) base._paginated_get = MagicMock(return_value=return_value) result = base._paginated_get_all('url') assert result == ['1', '1'] base._paginated_get.assert_called_with('url?page=2&per_page=500') def test_get_paginated_all_one_page(): """Test one page.""" return_value = { 'items': ['1'], 'pagination': {'total_records': 300} } base = ApiBase(podcast_network_id=1) base._paginated_get = MagicMock(return_value=return_value) result = base._paginated_get_all('url') assert result == ['1'] base._paginated_get.assert_called_once_with('url?page=1&per_page=500')