def test_handle_get_all_failed(self, model, _download, _on_all_failed, responder): """ Three catalog entries. All (3) failed. """ request = Mock(uri='http://content-world.com/content/bear.rpm') responder.return_value.__enter__.return_value = responder.return_value report = DownloadReport('', '') _download.side_effect = SideEffect(PluginNotFound(), DoesNotExist(), DownloadFailed(report)) catalog = [ Mock(url='url-a'), Mock(url='url-b'), Mock(url='url-c'), ] model.objects.filter.return_value.order_by.return_value.all.return_value = catalog model.objects.filter.return_value.order_by.return_value.count.return_value = len( catalog) # test streamer = Streamer(Mock()) streamer._handle_get(request) # validation model.objects.filter.assert_called_once_with(path='/content/bear.rpm') model.objects.filter.return_value.order_by.\ assert_called_once_with('-_id', '-revision') responder.assert_called_once_with(request) _on_all_failed.assert_called_once_with(request) self.assertEqual(_download.call_args_list, [ call(request, catalog[0], responder.return_value), call(request, catalog[1], responder.return_value), call(request, catalog[2], responder.return_value) ])
def test_get_downloader_not_found(self, controller, listener): entry = Mock(importer_id='123') controller.get_importer_by_id.side_effect = PluginNotFound() # test streamer = Streamer(Mock()) self.assertRaises(PluginNotFound, streamer._get_downloader, Mock(), entry)
def test_handle_get_no_plugin(self, mock_repo_controller): """ When the _download helper method fails to find the plugin, it raises an exception. """ self.request.uri = '/a/resource?k=v' mock_repo_controller.get_importer_by_id.side_effect = PluginNotFound() self.streamer._handle_get(self.request) self.request.setResponseCode.assert_called_once_with(INTERNAL_SERVER_ERROR)