from copy import deepcopy from unittest.mock import Mock from src.enums import FieldCopyMode # ================= Constants ================= NOT_EXISTING_ID = 9999 # ================= Fixtures ================= PLAYLIST_SYNC_FIXTURE = { "active": True, "title_copy_mode": FieldCopyMode.copy_source, "description_copy_mode": FieldCopyMode.no_update, "from_playlist_id": "spotify:playlist:53oTKrYlbGvo1KoF41t26O", "to_playlist_id": "123456789", # "to_service_account_id": 18, "title": None, "description": None } PLAYLIST_SYNC_FIXTURE_2 = { "active": True, "title_copy_mode": FieldCopyMode.copy_source, "description_copy_mode": FieldCopyMode.no_update, "from_playlist_id": "spotify:playlist:53oTKrYlbGvo1KoF41t26O", "to_playlist_id": "987654321", # "to_service_account_id": 18, "title": None, "description": None } # ================= Mocks ================= SYNC_MANAGER_MOCK = Mock( get_playlist_info=Mock( return_value=Mock( title="mock_title", image_url="mock_image_url", total_tracks=123, user_id="mock_user_id", user_name="mock_user_name", ) ) ) # ================= Requests ================= PLAYLIST_SYNC_CREATE_REQUEST = { "active": True, "titleCopyMode": 2, "descriptionCopyMode": 0, "fromPlaylistId": "spotify:playlist:53oTKrYlbGvo1KoF41t26O", "toPlaylistId": "123456789", # "to_service_account_id": 18, "title": None, "description": None } PLAYLIST_SYNC_CREATE_SOURCE_PLAYLIST_DOES_NOT_EXISTS_REQUEST = { "active": True, "titleCopyMode": 2, "descriptionCopyMode": 0, "fromPlaylistId": "spotify:playlist:xxxxxxxxxxxxxxxx", "toPlaylistId": "123456789", # "to_service_account_id": 18, "title": None, "description": None } PLAYLIST_SYNC_IDENTICAL_FROM_TO_CREATE_REQUEST = { "active": True, "titleCopyMode": 2, "descriptionCopyMode": 0, "fromPlaylistId": "spotify:playlist:53oTKrYlbGvo1KoF41t26O", "toPlaylistId": "spotify:playlist:53oTKrYlbGvo1KoF41t26O", # "to_service_account_id": 18, "title": None, "description": None } PLAYLIST_SYNC_UPDATE_REQUEST = deepcopy(PLAYLIST_SYNC_CREATE_REQUEST) PLAYLIST_SYNC_UPDATE_REQUEST["active"] = False # ================= Responses ================= PLAYLIST_SYNC_CREATE_RESPONSE = { # "id": 6686, # "applicationId": 14, "fromPlaylistId": "spotify:playlist:53oTKrYlbGvo1KoF41t26O", # TODO: get from service "fromServiceType": None, # "fromServiceType": 0, # TODO: get from service # "fromMusicServiceId": 1, "fromMusicServiceId": None, "toPlaylistId": "123456789", # "toServiceAccountId": 18, "title": None, "description": None, # "lastUpdated": None, "titleCopyMode": 2, "descriptionCopyMode": 0, "appendTrackList": False, "active": True, # "createdAt": "2023-04-18T19:57:46Z", "sourceTitle": "mock_title", "sourceImage": "mock_image_url", "sourceTrackCount": 123, # TODO: get from service # "synchronizedTrackCount": 0, "synchronizedTrackCount": None, "error": False, "insertMedia": [], "sourceServiceAccountId": "mock_user_id", "sourceServiceAccountName": "mock_user_name", "toPlaylistTitle": None, "toPlaylistImage": None } PLAYLIST_SYNC_UPDATE_RESPONSE = deepcopy(PLAYLIST_SYNC_CREATE_RESPONSE) PLAYLIST_SYNC_UPDATE_RESPONSE["active"] = False PLAYLIST_SYNC_LIST_GET_RESPONSE = { # "id": 10, # "applicationId": 14, "fromPlaylistId": "spotify:playlist:53oTKrYlbGvo1KoF41t26O", # TODO: # "fromServiceType": 0, "fromServiceType": None, # TODO: # "fromMusicServiceId": 1, "fromMusicServiceId": None, "toPlaylistId": "123456789", # "toServiceAccountId": 17, "title": None, "description": None, # "lastUpdated": "2023-04-13T03:02:00Z", "titleCopyMode": 2, "descriptionCopyMode": 0, "active": True, # "createdAt": "2015-09-08T00:00:00Z", # TODO: # "sourceTitle": "Rock España 2022-2000: Éxitos Rock Español · El Mejor Rock en Español", "sourceTitle": None, # TODO: # "sourceImage": "playlist-3MsgPef7NlNXMLCEtKDCox.jpeg", "sourceImage": None, # TODO: # "sourceTrackCount": 133, "sourceTrackCount": None, # TODO: # "synchronizedTrackCount": 0, "synchronizedTrackCount": None, "insertMedia": [], # TODO: # "time": "2023-04-13T03:02:06Z", "time": None, # TODO: # "syncedTrackCount": 0, "syncedTrackCount": None, # TODO: # "addedTracks": 0, "addedTracks": None, # "deletedTracks": 0, # TODO: "deletedTracks": None, # TODO: # "deletedDuplicates": 0, "deletedDuplicates": None, # TODO: # "madeChange": False, "madeChange": None, "errorText": None, # TODO: # "triggeredManually": False, "triggeredManually": None, "errorType": None, # TODO: # "sourceServiceAccountId": "mejoresplaylistsspotify", "sourceServiceAccountId": None, # TODO: # "sourceServiceAccountName": "Filtr Éxitos", "sourceServiceAccountName": None, "toPlaylistTitle": None, "toPlaylistImage": None, "toServiceType": 2 }