def test_download_started(self, event): batch = Mock() batch.listener = Mock() report = Mock() report.data = Mock() # test listener = NectarListener(batch) listener.download_started(report) # validation event.assert_called_once_with(report.data) event.return_value.assert_called_once_with(batch.listener)
def test_download_started_canceled(self): batch = Mock() batch.is_canceled = True batch.listener = Mock() report = Mock() report.data = Mock() # test listener = NectarListener(batch) listener.download_started(report) # validation self.assertFalse(batch.listener.download_started.called)
def test_download_started_no_listener(self): canceled = Mock() canceled.isSet.return_value = False downloader = Mock() listener = None report = Mock() report.data = {'A': 1} # test nectar_listener = NectarListener(canceled, downloader, listener) nectar_listener.download_started(report) # validation canceled.isSet.assert_called_with()
def test_download_started_no_listener(self): batch = Mock() batch.is_canceled = False batch.listener = Mock() batch.listener.__nonzero__ = Mock(return_value=False) report = Mock() report.data = Mock() # test listener = NectarListener(batch) listener.download_started(report) # validation self.assertFalse(batch.listener.download_started.called)
def test_download_succeeded_canceled(self): batch = Mock() batch.is_canceled = True batch.listener = Mock() report = Mock() report.data = Mock() # test listener = NectarListener(batch) listener.download_succeeded(report) # validation self.assertFalse(batch.finished.called) self.assertFalse(batch.listener.download_succeeded.called) self.assertEqual(listener.total_succeeded, 1)
def test_download_succeeded_and_canceled(self): canceled = Mock() canceled.isSet.return_value = True downloader = Mock() listener = Mock() report = Mock() report.data = Mock() # test nectar_listener = NectarListener(canceled, downloader, listener) nectar_listener.download_succeeded(report) # validation canceled.isSet.assert_called_with() self.assertFalse(listener.download_succeeded.called)
def test_download_succeeded(self, event): batch = Mock() batch.in_progress = Mock() batch.listener = Mock() report = Mock() report.data = Mock() # test listener = NectarListener(batch) listener.download_succeeded(report) # validation batch.in_progress.decrement.assert_called_with() event.assert_called_once_with(report.data) event.return_value.assert_called_once_with(batch.listener) self.assertEqual(listener.total_succeeded, 1)
def test_download_succeeded_no_listener(self): batch = Mock() batch.is_canceled = False batch.listener = Mock() batch.listener.__nonzero__ = Mock(return_value=False) report = Mock() report.data = Mock() # test listener = NectarListener(batch) listener.download_succeeded(report) # validation batch.in_progress.decrement.assert_called_with() self.assertFalse(batch.listener.download_succeeded.called) self.assertEqual(listener.total_succeeded, 1)
def test_download_succeeded(self): batch = Mock() batch.is_canceled = False batch.in_progress = Mock() batch.listener = Mock() report = Mock() report.data = Mock() # test listener = NectarListener(batch) listener.download_succeeded(report) # validation batch.in_progress.decrement.assert_called_with() batch.listener.download_succeeded.assert_called_with(report.data) self.assertEqual(listener.total_succeeded, 1)
def test_notify(self, mock_log): method = Mock() report = Mock() # test NectarListener._notify(method, report) # validations method.assert_called_with(report) # test (raised) method.side_effect = ValueError() NectarListener._notify(method, report) # validation mock_log.exception.assert_called_with(str(method))
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_download_succeeded_no_listener(self): canceled = Mock() canceled.isSet.return_value = False downloader = Mock() listener = None report = Mock() request = Mock() request.downloaded = False report.data = request # test nectar_listener = NectarListener(canceled, downloader, listener) nectar_listener.download_succeeded(report) # validation canceled.isSet.assert_called_with() self.assertTrue(request.downloaded)
def test_construction(self): batch = Mock() # test listener = NectarListener(batch) # validation self.assertEqual(listener.batch, batch)
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)
def test_construction(self): canceled = FakeEvent() downloader = Mock() listener = Mock() # test nectar_listener = NectarListener(canceled, downloader, listener=listener) self.assertEqual(nectar_listener.cancel_event, canceled) self.assertEqual(nectar_listener.downloader, downloader) self.assertEqual(nectar_listener.listener, listener)
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_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)