def test_get_download_callable(self, mocker): grabber = Grabber('http://example.com') mock_downloader = mocker.Mock() grabber.download_callable = mock_downloader assert grabber.get_download_callable() is mock_downloader
def test_download_image__exception_raised(self, mocker): correct_url = 'http://example.com' now = datetime.now() e = Exception() dummy_request = {'requested_at': now, 'url': correct_url} dummy_downloader = mocker.Mock(side_effect=e) grabber = Grabber('http://bad-url.com') grabber.get_download_callable = mocker.Mock( grabber.get_download_callable, autospec=True, return_value=dummy_downloader, ) grabber.ignore_download_exception = mocker.Mock( grabber.ignore_download_exception, autospec=True, return_value=False) with pytest.raises(Exception): grabber.download_image(dummy_request) grabber.get_download_callable.assert_called_once_with() dummy_downloader.assert_called_once_with(correct_url, grabber) grabber.ignore_download_exception.assert_called_once_with(e)
def test_download_image__exception_ignored(self, mocker): correct_url = 'http://example.com' now = datetime.now() e = Exception() dummy_request = {'requested_at': now, 'url': correct_url} dummy_downloader = mocker.Mock(side_effect=e) grabber = Grabber('http://bad-url.com') grabber.get_download_callable = mocker.Mock( grabber.get_download_callable, autospec=True, return_value=dummy_downloader, ) grabber.ignore_download_exception = mocker.Mock( grabber.ignore_download_exception, autospec=True, return_value=True) expected_result = { 'requested_at': now, 'url': correct_url, 'image': None, 'error': e } result = grabber.download_image(dummy_request) assert result == expected_result grabber.get_download_callable.assert_called_once_with() dummy_downloader.assert_called_once_with(correct_url, grabber) grabber.ignore_download_exception.assert_called_once_with(e)
def test_download_image(self, mocker): correct_url = 'http://example.com' dummy_image = Image.Image() now = datetime.now() dummy_request = {'requested_at': now, 'url': correct_url} dummy_downloader = mocker.Mock(return_value=dummy_image) grabber = Grabber('http://bad-url.com', save_dir='some/dir') grabber.get_download_callable = mocker.Mock( grabber.get_download_callable, autospec=True, return_value=dummy_downloader) expected_result = { 'requested_at': now, 'url': correct_url, 'image': dummy_image, 'error': None, } result = grabber.download_image(dummy_request) assert result == expected_result dummy_downloader.assert_called_once_with(correct_url, grabber) grabber.get_download_callable.assert_called_once_with()