"""Tests for artist_yt_delivery_settings MySQL queries.""" import pytest from pytest_mock import MockerFixture from contributor.queries.mysql.artist_yt_delivery_settings import ( ArtistYtDeliverySettings, remove_artist_info_references, ) @pytest.fixture def session(mocker: MockerFixture): return mocker.Mock() class TestArtistYtDeliverySettingsModel: def test_has_expected_tablename(self) -> None: assert ArtistYtDeliverySettings.__tablename__ == "artist_yt_delivery_settings" def test_can_instantiate_with_fields(self) -> None: instance = ArtistYtDeliverySettings(id=1, artist_id=42) assert instance.id == 1 assert instance.artist_id == 42 class TestRemoveArtistInfoReferences: def test_deletes_matching_rows(self, session, mocker: MockerFixture) -> None: remove_artist_info_references(session=session, artist_info_id=42) session.execute.assert_called_once() delete_stmt = session.execute.call_args.args[0] assert "artist_yt_delivery_settings" in str(delete_stmt) def test_filters_by_artist_id(self, session, mocker: MockerFixture) -> None: remove_artist_info_references(session=session, artist_info_id=99) delete_stmt = session.execute.call_args.args[0] where_clause = str(delete_stmt) assert "artist_id" in where_clause