示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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()
示例#6
0
    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)
示例#7
0
    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()
示例#8
0
    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)
示例#9
0
    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)
示例#10
0
    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)
示例#11
0
    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)
示例#12
0
    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)
示例#13
0
    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)
示例#14
0
    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)
示例#15
0
    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)
示例#16
0
    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)
示例#17
0
    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))
示例#18
0
    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))
示例#19
0
    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)
示例#20
0
    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)
示例#21
0
    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()
示例#22
0
    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)
示例#23
0
    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()
示例#24
0
    def test_construction(self):
        batch = Mock()

        # test
        listener = NectarListener(batch)

        # validation
        self.assertEqual(listener.batch, batch)
示例#25
0
    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)
示例#26
0
    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)
示例#27
0
    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)
示例#28
0
    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)
示例#29
0
    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)
示例#30
0
    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)
示例#31
0
    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)
示例#32
0
    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)
示例#33
0
    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)
示例#34
0
    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)
示例#35
0
 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)
示例#36
0
 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)