"""Test for soft delete episodes.""" from unittest.mock import patch from dev.delete_draft_episodes import delete_episode_from_db_and_megaphone from oto import status import pytest from podcast.logic import megaphone as megaphone_logic from podcast.utils.exc import OwsError from tests.utils import db_operations @patch('podcast.logic.megaphone.delete_episode') @patch('podcast.utils.api_utils.get_user_id', return_value=1) def test_delete_episode_from_db_and_megaphone_success( mock_api_utils, mock_delete_episode_from_megaphone): """Test delete episode from db and megaphone.""" podcast_id = db_operations.episode_data[2]['podcast_id'] episode_id = db_operations.episode_data[2]['id'] result = delete_episode_from_db_and_megaphone(podcast_id, episode_id) assert result['id'] == episode_id megaphone_logic.delete_episode.assert_called_once_with( '6bf5bea4-a1d4-11e6-8dea-b334e2aa4720', '6bf5bea4-a1d4-11e6-8dea-b334e2aa4811', 2 ) @patch('podcast.logic.megaphone.delete_episode') def test_delete_episode_from_db_and_megaphone_failure(mock_delete_episode_from_megaphone): """Test delete episode from db and megaphone failure.""" podcast_id = 1 episode_id = 123 with pytest.raises(OwsError) as err: delete_episode_from_db_and_megaphone(podcast_id, episode_id) assert err.value.status == status.NOT_FOUND podcast_id = 1 episode_id = 1 with pytest.raises(OwsError) as err: delete_episode_from_db_and_megaphone(podcast_id, episode_id) assert err.value.message == 'Episode is not in draft mode'