def test_download_failed_and_canceled(self): canceled = Mock() canceled.isSet.return_value = True downloader = Mock() listener = Mock() report = Mock() request = Mock() report.data = request # test nectar_listener = NectarListener(canceled, downloader, listener) nectar_listener.download_failed(report) # validation canceled.isSet.assert_called_with() self.assertFalse(listener.failed_succeeded.called)
def test_notification_no_listener(self, *unused): request = Request('', {}, '', '') container = ContentContainer('') event = Event() nectar_listener = NectarListener(event, Mock()) nectar_listener._notify = Mock() report = Mock() report.data = request # started nectar_listener.download_started(report) self.assertFalse(nectar_listener._notify.called) # succeeded nectar_listener.download_succeeded(report) self.assertFalse(nectar_listener._notify.called) # failed nectar_listener.download_failed(report) self.assertFalse(nectar_listener._notify.called)
def test_download_failed_no_listener(self): canceled = Mock() canceled.isSet.return_value = False downloader = Mock() listener = None report = Mock() request = Mock() request.errors = [] report.data = request # test nectar_listener = NectarListener(canceled, downloader, listener) nectar_listener.download_failed(report) self.assertEqual(request.errors, [report.error_msg]) # validation canceled.isSet.assert_called_with()
def test_notification(self, *unused): request = Request('', {}, '', '') listener = MockListener() listener.download_started = Mock(side_effect=ValueError) container = ContentContainer('') event = Event() nectar_listener = NectarListener(event, Mock(), listener) report = Mock() report.data = request # started nectar_listener.download_started(report) listener.download_started.assert_called_with(request) # succeeded nectar_listener.download_succeeded(report) listener.download_succeeded.assert_called_with(request) # failed nectar_listener.download_failed(report) listener.download_failed.assert_called_with(request)
def test_download_failed_canceled(self): batch = Mock() batch.is_canceled = True batch.listener = Mock() report = Mock() report.data = Mock() report.data.errors = [] report.error_msg = 'something bad happened' # test listener = NectarListener(batch) listener.download_failed(report) # validation self.assertFalse(batch.dispatch.called) self.assertFalse(batch.listener.download_failed.called) self.assertEqual(len(report.data.errors), 0) self.assertEqual(listener.total_failed, 1)
def test_download_failed_not_dispatched(self, event): batch = Mock() batch.listener = Mock() batch.dispatch.return_value = False report = Mock() report.data = Mock() report.data.errors = [] report.error_msg = 'something bad happened' # test listener = NectarListener(batch) listener.download_failed(report) # validation event.assert_called_once_with(report.data) event.return_value.assert_called_once_with(batch.listener) self.assertEqual(len(report.data.errors), 1) self.assertEqual(report.data.errors[0], report.error_msg) self.assertEqual(listener.total_failed, 1)
def test_download_failed(self, event): batch = Mock() batch.listener = Mock() batch.dispatch.return_value = True batch.in_progress = Mock() report = Mock() report.data = Mock() report.data.errors = [] report.error_msg = 'something bad happened' # test listener = NectarListener(batch) listener.download_failed(report) # validation) self.assertFalse(event.called) self.assertFalse(batch.in_progress.decrement.called) self.assertEqual(len(report.data.errors), 1) self.assertEqual(report.data.errors[0], report.error_msg) self.assertEqual(listener.total_failed, 1)
def test_download_failed_not_dispatched_no_listener(self): batch = Mock() batch.is_canceled = False batch.listener = Mock() batch.listener.__nonzero__ = Mock(return_value=False) batch.dispatch.return_value = False report = Mock() report.data = Mock() report.data.errors = [] report.error_msg = 'something bad happened' # test listener = NectarListener(batch) listener.download_failed(report) # validation batch.dispatch.assert_called_with(report.data) self.assertFalse(batch.listener.download_failed.called) self.assertEqual(len(report.data.errors), 1) self.assertEqual(report.data.errors[0], report.error_msg) self.assertEqual(listener.total_failed, 1)