"""Tests for Sound Recording metadata logic.""" import flexmock import pytest from oto import response as oto_response from sound_recordings.logic import sound_recording_metadata from sound_recordings.models import track_metadata as track_metadata_model from sound_recordings.schemas.sound_recording_metadata import ( SoundRecordingMetadataSchema, ) class TestGetSoundRecordingMetadata: """Test get_sound_recording_metadata.""" isrc = "GBUM71105426" artist_track_metadata = {"isrc": "QM6P41952433"} track_metadata = {"isrc": "DED831000251"} @pytest.fixture() def mock_label_track_metadata( self, mock_permissions_for_label_without_feed_ids, permissions_for_label ): """Mock response from get_track_metadata.""" flexmock(track_metadata_model).should_receive("get_track_metadata").with_args( permissions_for_label, self.isrc, False ).and_return(self.track_metadata) @pytest.fixture() def mock_artist_track_metadata( self, mock_permissions_for_artist_without_feed_ids, permissions_for_artist ): """Mock response from get_artist_track_metadata.""" flexmock(track_metadata_model).should_receive("get_track_metadata").with_args( permissions_for_artist, self.isrc, False ).and_return(self.artist_track_metadata) @pytest.fixture() def profile_result( self, mock_permissions_for_artist_without_feed_ids, request_context_for_artist ): """Return metadata result for profile.""" return sound_recording_metadata.get_sound_recording_metadata( request_context_for_artist, self.isrc, False ) @pytest.fixture() def label_result( self, mock_permissions_for_label_without_feed_ids, request_context_for_label ): """Return metadata result for label.""" return sound_recording_metadata.get_sound_recording_metadata( request_context_for_label, self.isrc, False ) def test_artist_result(self, mock_artist_track_metadata, profile_result): """Test the result is the same as returned from normalizing data.""" assert ( profile_result.message == oto_response.Response( SoundRecordingMetadataSchema.normalize(self.artist_track_metadata) ).message ) def test_label_result(self, mock_label_track_metadata, label_result): """Test the result is the same as returned from normalizing data.""" assert label_result.message == self.track_metadata