"""Test for track_artist model.""" from product.connectors.mysql import db_session from product.models import track_artist from tests.factories.track_artist import TrackArtistFactory from tests.testutils import db @db.test_schema def test_get_artist_ids_for_tracks(): """Test get_artist_ids_for_tracks with valid tuids.""" db.seed_models(TrackArtistFactory.build(tuid=1)) db.seed_models(TrackArtistFactory.build_batch(4, tuid=2)) response_ids = track_artist.get_artist_ids_for_tracks([1, 2]) assert response_ids.status == 200 assert len(response_ids.message) == 5 @db.test_schema def test_get_artist_ids_for_tracks_no_artist(): """Test get_artist_ids for tracks that has no artists.""" response_ids = track_artist.get_artist_ids_for_tracks([1]) assert response_ids.status == 200 assert len(response_ids.message) == 0 @db.test_schema def test_validate_artists_belong_to_tuid(): """Test validate_artists_belong_to_tuid with valid artist_ids.""" db.seed_models(TrackArtistFactory.build_batch(4, tuid=1)) db.seed_models(TrackArtistFactory.build(tuid=1, track_artist_id=1001)) db.seed_models(TrackArtistFactory.build(tuid=1, track_artist_id=1002)) response = track_artist.validate_artists_belong_to_tuid(1, [1001, 1002]) assert response @db.test_schema def test_validate_artists_belong_to_tuid_fail(): """Test validate_artists_belong_to_tuid with invalid artist_id.""" db.seed_models(TrackArtistFactory.build(tuid=1, track_artist_id=1001)) db.seed_models(TrackArtistFactory.build(tuid=1, track_artist_id=1002)) response = track_artist.validate_artists_belong_to_tuid(1, [1001, 1003]) assert not response @db.test_schema def test_validate_artists_belong_to_tuid_other_track(): """Test validate_artists_belong_to_tuid with diff tracks artist_ids.""" db.seed_models(TrackArtistFactory.build(tuid=2, track_artist_id=1001)) db.seed_models(TrackArtistFactory.build(tuid=1, track_artist_id=1002)) response = track_artist.validate_artists_belong_to_tuid(1, [1001, 1002]) assert not response @db.test_schema def test_delete(): """Test delete with valid tuids.""" db.seed_models(TrackArtistFactory.build(tuid=1, track_artist_id=1001)) db.seed_models(TrackArtistFactory.build(tuid=2, track_artist_id=1002)) with db_session() as session: response = track_artist.delete(track_ids=[1, 2], session=session) assert response @db.test_schema def test_invalid_delete(): """Test delete with invalid tuids.""" db.seed_models(TrackArtistFactory.build(tuid=1, track_artist_id=1001)) db.seed_models(TrackArtistFactory.build(tuid=2, track_artist_id=1002)) missing_tuid = 4 with db_session() as session: assert not track_artist.delete(track_ids=[missing_tuid], session=session)