import pytest from pytest_mock import MockerFixture from ows_text_campaigns.artist.handlers import ( CreateArtistImageUploadCredentialsHandler, CreateArtistImageUploadCredentialsRequest, ) from ows_text_campaigns.artist.models import ArtistSettings from ows_text_campaigns.config import Settings from ows_text_campaigns.rosters.models import ArtistRosterMainRep from tests.unit.types import CreateModel class TestCreateArtistImageUploadCredentialsHandler: @pytest.mark.db def test_create_image_upload_credentials( self, handler: CreateArtistImageUploadCredentialsHandler, create_model: CreateModel, settings: Settings, mocker: MockerFixture, ) -> None: artist_settings = create_model(ArtistSettings) create_model( ArtistRosterMainRep, global_participant_id=artist_settings.global_participant_id, vendor_id=1, subaccount_id=0, ) filename = "test.jpg" mocker.patch( "ows_text_campaigns.assets.utils.unique_hash", return_value="123", ) upload_credentials = handler.handle( CreateArtistImageUploadCredentialsRequest( identity_id=artist_settings.global_participant_id, global_participant_id=artist_settings.global_participant_id, filename=filename, ) ) assert upload_credentials.key == ( f"{settings.assets_path}/artist" f"/{artist_settings.global_participant_id}/test__123.jpg" )