def test_it_sleeps_where_no_messages(mock_time, mock_queue): mock_queue.return_value = mock_queue mock_queue.receive_messages.return_value = [] # Break out of while loop mock_time.sleep.side_effect = RuntimeError("Break Loop") with pytest.raises(RuntimeError): main("https://queue/url", 1, 1, 1) mock_time.sleep.assert_called_with(1)
def test_it_sets_kill_handlers(mock_queue, mock_signal): mock_queue.return_value = mock_queue # Break out of while loop mock_queue.receive_messages.side_effect = RuntimeError("Break Loop") with pytest.raises(RuntimeError): main("https://queue/url", 1, 1, 1) assert mock_signal.SIGINT, ANY == mock_signal.signal.call_args_list[0][0] assert mock_signal.SIGTERM, ANY == mock_signal.signal.call_args_list[1][0]
def test_it_starts_subprocesses(mock_queue, mock_pool): mock_queue.return_value = mock_queue mock_message = MagicMock() mock_queue.receive_messages.return_value = [mock_message] # Break out of while loop mock_pool.return_value = mock_pool mock_pool.__enter__.return_value = mock_pool mock_pool.starmap.side_effect = RuntimeError("Break loop") with pytest.raises(RuntimeError): main("https://queue/url", 1, 1, 1) mock_pool.assert_called_with(maxtasksperchild=1) mock_pool.starmap.assert_called_with(ANY, [ ("https://queue/url", mock_message.body, mock_message.receipt_handle) ]) mock_queue.receive_messages.assert_called_with(WaitTimeSeconds=1, MaxNumberOfMessages=1)