from unittest.mock import patch import pytest from marshmallow import ValidationError from analytics.connectors import redis from analytics.logic.sound_recording_related_videos import ( get_sound_recording_related_videos_by_isrc, ) def test_get_sound_recording_related_videos_by_isrc_requires_isrc(): with pytest.raises(ValidationError): get_sound_recording_related_videos_by_isrc({}, {}) MOCK_RELATED_VIDEOS_ROWS = [ {"video_id": "video_id_1"}, {"video_id": "video_id_2"}, {"video_id": "video_id_3"}, ] def test_get_sound_recording_related_videos_by_isrc_default(): with patch( "analytics.logic.sound_recording_related_videos" ".SoundRecordingRelatedVideosByIsrc" ".execute", return_value=MOCK_RELATED_VIDEOS_ROWS, ): redis.client.flushall() # flush Fakeredis cache video_ids = get_sound_recording_related_videos_by_isrc( {"isrc": "US53Q1200099"}, {} ) assert len(video_ids) == 3 assert video_ids == ["video_id_1", "video_id_2", "video_id_3"] def test_get_sound_recording_related_videos_by_isrc_empty(): with patch( "analytics.logic.sound_recording_related_videos" ".SoundRecordingRelatedVideosByIsrc" ".execute", return_value=[], ): redis.client.flushall() # flush Fakeredis cache video_ids = get_sound_recording_related_videos_by_isrc( {"isrc": "US53Q1200099"}, {} ) assert len(video_ids) == 0 assert video_ids == []