I am trying to check if the application is repeating.
@celery.task(bind=False, default_retry_delay=30) def convert_video(gif_url, webhook): // doing something VideoManager().convert(gif_url) return except Exception as exc: raise convert_video.retry(exc=exc)
And I mock the test
@patch('src.video_manager.VideoManager.convert') @patch('requests.post') def test_retry_failed_task(self, mock_video_manager, mock_requests): mock_video_manager.return_value= {'webm':'file.webm', 'mp4':'file.mp4', 'ogv' : 'file.ogv', 'snapshot':'snapshot.png'} mock_video_manager.side_effect = Exception('some error') server.convert_video.retry = MagicMock() server.convert_video('gif_url', 'http://www.company.com/webhook?attachment_id=1234') server.convert_video.retry.assert_called_with(ANY)
And I get this error
TypeError: exceptions should be old-style classes or derived from BaseException, not MagicMock
This is obvious, but I donโt know how to do it otherwise to check if the method is called.
source share