"""Tests Meta DDEX generation.""" from textwrap import dedent from unittest.mock import patch from soundrecording_utils.constants.ddex.constants import RuleService from soundrecording_utils.ddex.v38 import generate from soundrecording_utils.ddex.v38.e import E from soundrecording_utils.metadata.types import OrchardSoundRecording @patch('soundrecording_utils.ddex.v38.generate.generate_release_deal') @patch('soundrecording_utils.ddex.v38.generate.generate_release') @patch('soundrecording_utils.ddex.v38.generate.generate_sound_recording_resource') @patch('soundrecording_utils.ddex.v38.generate.generate_header') @patch('soundrecording_utils.ddex.v38.generate.base_validation') def test_header_creates_correctly( mock_base_validation, mock_generate_header, mock_generate_sound_recording_resource, mock_generate_release, mock_generate_release_deal, mock_orchard_sound_recording: OrchardSoundRecording, execution_meta, ): """Test that header is created as expected.""" mock_generate_header.return_value = E('MockedMessageHeader') mock_generate_sound_recording_resource.return_value = E( 'MockSoundRecording', ) mock_generate_release.return_value = E('MockRelease') mock_generate_release_deal.return_value = E('MockReleaseDeal') result = generate.generate_ddex( mock_orchard_sound_recording, None, execution_meta, 'lambda-sr-delivery-tiktok', RuleService.TIKTOK, ) expected = """ """ # noqa: E501 assert result == dedent(expected).lstrip() mock_generate_header.assert_called_once_with(execution_meta, RuleService.TIKTOK) mock_generate_sound_recording_resource.assert_called_once_with( 'A1', mock_orchard_sound_recording, mock_orchard_sound_recording.track_connection.tracks[0], None, 'tiktok', takedown=False, ) mock_generate_release.assert_called_once_with( 'R1', 'A1', mock_orchard_sound_recording, mock_orchard_sound_recording.track_connection.tracks[0], 'tiktok', takedown=False, ) mock_base_validation.assert_called_once_with( mock_orchard_sound_recording.track_connection.tracks[0], RuleService.TIKTOK, selected_version='3.8', ) mock_generate_release_deal.assert_called_once_with( 'R1', mock_orchard_sound_recording, 'tiktok', False ) @patch('soundrecording_utils.ddex.v38.generate.generate_release_deal') @patch('soundrecording_utils.ddex.v38.generate.generate_release') @patch('soundrecording_utils.ddex.v38.generate.generate_sound_recording_resource') @patch('soundrecording_utils.ddex.v38.generate.generate_header') @patch('soundrecording_utils.ddex.v38.generate.base_validation') def test_generate_with_takedown( mock_base_validation, mock_generate_header, mock_generate_sound_recording_resource, mock_generate_release, mock_generate_release_deal, mock_orchard_sound_recording: OrchardSoundRecording, execution_meta, ): """Test that DealList is not included.""" mock_generate_header.return_value = E('MockedMessageHeader') mock_generate_sound_recording_resource.return_value = E( 'MockSoundRecording', ) mock_generate_release.return_value = E('MockRelease') mock_generate_release_deal.return_value = E('MockReleaseDeal') result = generate.generate_ddex( mock_orchard_sound_recording, None, execution_meta, 'lambda-sr-delivery-tiktok', RuleService.TIKTOK, takedown=True, ) expected = """ """ # noqa: E501 assert result == dedent(expected).lstrip() mock_generate_header.assert_called_once_with(execution_meta, RuleService.TIKTOK) mock_generate_sound_recording_resource.assert_called_once_with( 'A1', mock_orchard_sound_recording, mock_orchard_sound_recording.track_connection.tracks[0], None, 'tiktok', takedown=True, ) mock_generate_release.assert_called_once_with( 'R1', 'A1', mock_orchard_sound_recording, mock_orchard_sound_recording.track_connection.tracks[0], 'tiktok', takedown=True, ) mock_base_validation.assert_called_once_with( mock_orchard_sound_recording.track_connection.tracks[0], RuleService.TIKTOK, selected_version='3.8', ) mock_generate_release_deal.assert_called_once_with( 'R1', mock_orchard_sound_recording, 'tiktok', True )