from faker import Faker from pytest_mock import MockerFixture from ows_text_campaigns.assets.utils import ( create_asset_filename, get_assets_url, update_asset_key, ) from ows_text_campaigns.config import Settings def test_get_assets_url(settings: Settings) -> None: result = get_assets_url("assets/test.jpg") assert result == f"https://{settings.assets_cdn_domain}/assets/test.jpg" def test_create_asset_filename(mocker: MockerFixture) -> None: mocker.patch( "ows_text_campaigns.assets.utils.unique_hash", return_value="ab12", ) result = create_asset_filename("test.jpg") assert result == "test__ab12.jpg" def test_update_asset_key(faker: Faker, mocker: MockerFixture) -> None: campaign_id = faker.uuid4() asset_key = f"assets/campaigns/{campaign_id}/test__ab12.png" mocker.patch( "ows_text_campaigns.assets.utils.unique_hash", return_value="cd24", ) updated_asset_key = update_asset_key(asset_key) assert updated_asset_key == f"assets/campaigns/{campaign_id}/test__cd24.png" def test_update_asset_key_with_size(faker: Faker, mocker: MockerFixture) -> None: campaign_id = faker.uuid4() asset_key = f"assets/campaigns/{campaign_id}/test__abc123.png" mocker.patch( "ows_text_campaigns.assets.utils.unique_hash", return_value="cd24", ) updated_asset_key = update_asset_key(asset_key, size=(300, 300)) assert updated_asset_key == ( f"assets/campaigns/{campaign_id}/test-300x300__cd24.png" ) def test_update_asset_key_with_extension(faker: Faker, mocker: MockerFixture) -> None: campaign_id = faker.uuid4() asset_key = f"assets/campaigns/{campaign_id}/test__abc123.png" mocker.patch( "ows_text_campaigns.assets.utils.unique_hash", return_value="cd24", ) updated_asset_key = update_asset_key(asset_key, extension=".jpeg") assert updated_asset_key == f"assets/campaigns/{campaign_id}/test__cd24.jpeg" def test_update_asset_key_with_size_and_extension( faker: Faker, mocker: MockerFixture ) -> None: campaign_id = faker.uuid4() asset_key = f"assets/campaigns/{campaign_id}/test__ab12.png" mocker.patch( "ows_text_campaigns.assets.utils.unique_hash", return_value="cd34", ) updated_asset_key = update_asset_key(asset_key, size=(1000, 1000), extension="jpg") assert updated_asset_key == ( f"assets/campaigns/{campaign_id}/test-1000x1000__cd34.jpg" )