"""Tests for Apple model.""" from unittest.mock import MagicMock import pytest import requests from artist.models import apple @pytest.fixture def mock_apple_response(): """Mock Apple Music API response.""" return { 'results': { 'artists': { 'data': [1, 2, 3] } } } def test_search(mocker, mock_apple_response): """Test searching returns a list of results.""" apple_response = MagicMock() expected_response = { 'items': [1, 2, 3] } apple_response.json = MagicMock(return_value=mock_apple_response) mocker.patch('artist.models.apple.get_auth_token', return_value='token') mocker.patch.object(requests, 'get').return_value = apple_response response = apple.search('test', 'us') assert response.status == 200 assert response.message == expected_response def test_search_no_artists_found(mocker): """Test searching returns a list of results.""" apple_response = MagicMock() apple_response.json = MagicMock(return_value={ 'results': {} }) mocker.patch('artist.models.apple.get_auth_token', return_value='token') mocker.patch.object(requests, 'get').return_value = apple_response response = apple.search('test', 'us') assert response.status == 200 assert response.message == {'items': []} def test_search_failure(mocker): """Test searching when an auth token is not available.""" mocker.patch('artist.models.apple.get_auth_token', return_value=None) response = apple.search('test', 'us') assert response.status == 401