"""Tests for release_artist MySQL queries.""" from sqlalchemy.sql.dml import Update from pytest_mock import MockerFixture from contributor.queries.mysql.release_artist import ( reassign_artist_info, rename_release_artists, ) class TestRenameReleaseArtists: def test_executes_update_statement(self, mocker: MockerFixture) -> None: session = mocker.Mock() rename_release_artists( session=session, current_artist_name="Drug Church", vendor_id=24888, new_artist_name="DRUG CHURCH", ) session.execute.assert_called_once() stmt = session.execute.call_args.args[0] assert isinstance(stmt, Update) assert stmt.table.name == "release_artist" def test_passes_correct_values(self, mocker: MockerFixture) -> None: session = mocker.Mock() rename_release_artists( session=session, current_artist_name="Drug Church", vendor_id=24888, new_artist_name="DRUG CHURCH", ) stmt = session.execute.call_args.args[0] values = {col.name: bp.value for col, bp in stmt._values.items()} assert values == {"artist_name": "DRUG CHURCH"} class TestReassignArtistInfo: def test_executes_update_statement(self, mocker: MockerFixture) -> None: session = mocker.Mock() reassign_artist_info( session=session, artist_name="DRUG CHURCH", artist_info_id=123, duplicate_artist_info_id=456, ) session.execute.assert_called_once() stmt = session.execute.call_args.args[0] assert isinstance(stmt, Update) assert stmt.table.name == "release_artist" def test_passes_correct_values(self, mocker: MockerFixture) -> None: session = mocker.Mock() reassign_artist_info( session=session, artist_name="DRUG CHURCH", artist_info_id=123, duplicate_artist_info_id=456, ) stmt = session.execute.call_args.args[0] values = {col.name: bp.value for col, bp in stmt._values.items()} assert values == {"artist_info_id": 123, "artist_name": "DRUG CHURCH"}