コード例 #1
0
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)
コード例 #2
0
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]
コード例 #3
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)