import httpx import pytest from sqlalchemy import Column from dapd_api_scraper.entities import ( AppleMusicAlbumEntity, AppleMusicArtistEntity, AppleMusicPlaylistEntity, AppleMusicTrackEntity, SpotifyAlbumEntity, SpotifyArtistEntity, SpotifyPlaylistEntity, SpotifyTrackEntity, ) from dapd_api_scraper.scraper import get_api_client, get_model_pk from dapd_api_scraper.workflowdb_models import ( Album, Artist, BuzzCategory, BuzzUser, Playlist, Track, ) @pytest.mark.parametrize( "entity", [ AppleMusicAlbumEntity, AppleMusicArtistEntity, AppleMusicPlaylistEntity, AppleMusicTrackEntity, SpotifyAlbumEntity, SpotifyArtistEntity, SpotifyPlaylistEntity, SpotifyTrackEntity, ], ) def test_api_client(entity): client = get_api_client(entity) assert isinstance(client, httpx.AsyncClient) cached_client = get_api_client(entity) assert isinstance(cached_client, httpx.AsyncClient) assert cached_client is client @pytest.mark.parametrize( "model", [ Album, Artist, BuzzCategory, BuzzUser, Playlist, Track, ], ) def test_get_model_pk(model): primary_key = get_model_pk(model) assert isinstance(primary_key, tuple) for column in primary_key: assert isinstance(column, Column)