def test_enqueue_succeedly_add_to_the_list(self): worker = workers.Worker({}, 1, 1) self.assertEqual(len(worker._workers_to_enqueue), 0) worker._enqueue('DummyClass', 'params') self.assertEqual(len(worker._workers_to_enqueue), 1) self.assertEqual(worker._workers_to_enqueue[0][0], 'DummyClass') self.assertEqual(worker._workers_to_enqueue[0][1], 'params')
def test_log_error_succeeds(self, patched_logger): worker = workers.Worker({}, 1, 1) self.assertEqual(patched_logger.log_struct.call_count, 0) worker.log_error('Hi there!') self.assertEqual(patched_logger.log_struct.call_count, 1) call_first_arg = patched_logger.log_struct.call_args[0][0] self.assertEqual(call_first_arg.get('log_level'), 'ERROR')
def test_log_warn_succeeds(self, patched_logger): patched_logger.log_struct.__name__ = 'foo' worker = workers.Worker({}, 1, 1) self.assertEqual(patched_logger.log_struct.call_count, 0) worker.log_warn('Hi there!') self.assertEqual(patched_logger.log_struct.call_count, 1) call_first_arg = patched_logger.log_struct.call_args[0][0] self.assertEqual(call_first_arg.get('log_level'), 'WARNING')
def test_retry_raises_error_if_bad_request_error(self): worker = workers.Worker({}, 1, 1) def _raise_value_error_exception(*args, **kwargs): raise HttpError(mock.Mock(status=400), '') fake_request = mock.Mock() fake_request.__name__ = 'foo' fake_request.side_effect = _raise_value_error_exception with self.assertRaises(HttpError): worker.retry(fake_request)() self.assertEqual(fake_request.call_count, 1)
def test_retry_raises_error_if_bad_request_error_in_urllib(self): worker = workers.Worker({}, 1, 1) def _raise_value_error_exception(*args, **kwargs): raise HTTPError('http://example.com/', 400, '', [], None) fake_request = mock.Mock() fake_request.__name__ = 'foo' fake_request.side_effect = _raise_value_error_exception with self.assertRaises(HTTPError): worker.retry(fake_request)() self.assertEqual(fake_request.call_count, 1)
def test_retry_until_a_finite_number_of_times(self, patched_logger, patched_time_sleep): patched_logger.log_struct.__name__ = 'foo' # NB: bypass the time.sleep wait, otherwise the test will take ages patched_time_sleep.side_effect = lambda delay: delay worker = workers.Worker({}, 1, 1) def _raise_value_error_exception(*args, **kwargs): raise ValueError('Wrong value.') fake_request = mock.Mock() fake_request.__name__ = 'foo' fake_request.side_effect = _raise_value_error_exception with self.assertRaises(ValueError): worker.retry(fake_request)() self.assertGreaterEqual(fake_request.call_count, 2)