Ejemplo n.º 1
0
def test_mailbox_retrieve_message_returns_mesh_message():
    message_id = a_string()
    mock_mesh_client = MagicMock()
    mock_mesh_client.retrieve_message.return_value = mock_client_message(message_id=message_id)
    mesh_inbox = MeshInbox(mock_mesh_client)

    retrieved_message = mesh_inbox.retrieve_message(message_id)

    assert retrieved_message.id == message_id
    mock_mesh_client.retrieve_message.assert_called_once_with(message_id)
Ejemplo n.º 2
0
def test_raises_network_error_when_retrieve_message_has_http_error():
    def mock_retrieve_message(message_id):
        raise mesh_client_http_error()

    client_inbox = MagicMock()
    client_inbox.retrieve_message = mock_retrieve_message

    mesh_inbox = MeshInbox(client_inbox)

    with pytest.raises(MeshClientNetworkError) as e:
        mesh_inbox.retrieve_message(a_string())

    assert str(e.value) == f"400 HTTP Error: Bad request for url: {TEST_INBOX_URL}"
Ejemplo n.º 3
0
def test_raises_network_error_when_iterating_all_messages_raises_an_http_error(
):
    def mock_iterate_all_messages():
        raise mesh_client_http_error()
        yield mock_client_message()

    client_inbox = MagicMock()
    client_inbox.iterate_all_messages = mock_iterate_all_messages

    mesh_inbox = MeshInbox(client_inbox)

    with pytest.raises(MeshClientNetworkError) as e:
        mesh_inbox.read_messages()

    assert str(
        e.value) == f"400 HTTP Error: Bad request for url: {TEST_INBOX_URL}"
Ejemplo n.º 4
0
def test_raises_network_error_when_retrieve_message_raises_a_connection_error():
    def mock_retrieve_message(message_id):
        raise mesh_client_connection_error("an error")

    client_inbox = MagicMock()
    client_inbox.retrieve_message = mock_retrieve_message

    mesh_inbox = MeshInbox(client_inbox)

    with pytest.raises(MeshClientNetworkError) as e:
        mesh_inbox.retrieve_message(a_string())

    assert str(e.value) == (
        f"ConnectionError received when attempting to connect to: {TEST_INBOX_URL}"
        " caused by: an error"
    )
Ejemplo n.º 5
0
def test_raises_network_error_when_iterating_all_messages_raises_a_connection_error(
):
    def mock_iterate_all_messages():
        raise mesh_client_connection_error("an error")
        yield mock_client_message()

    client_inbox = MagicMock()
    client_inbox.iterate_all_messages = mock_iterate_all_messages

    mesh_inbox = MeshInbox(client_inbox)

    with pytest.raises(MeshClientNetworkError) as e:
        mesh_inbox.read_messages()

    assert str(e.value) == (
        f"ConnectionError received when attempting to connect to: {TEST_INBOX_URL}"
        " caused by: an error")
Ejemplo n.º 6
0
def mock_mesh_inbox(client_messages=None,
                    iterate_messages_error=None,
                    count_messages_error=None):
    client_messages = [] if client_messages is None else client_messages
    mock_mesh_client = MagicMock()
    mock_mesh_client.iterate_all_messages.return_value = iter(client_messages)
    mock_mesh_client.iterate_all_messages.side_effect = iterate_messages_error
    mock_mesh_client.count_messages.side_effect = count_messages_error
    return MeshInbox(mock_mesh_client)
Ejemplo n.º 7
0
def build_forwarder_service(
    mesh_config: MeshConfig,
    message_destination_config: MessageDestinationConfig,
    poll_frequency_sec: int,
    disable_message_header_validation: bool,
) -> MeshToAwsForwarderService:
    uploader = resolve_message_uploader(message_destination_config)

    mesh = mesh_client.MeshClient(
        mesh_config.url,
        mesh_config.mailbox,
        mesh_config.password,
        shared_key=mesh_config.shared_key,
        cert=(mesh_config.client_cert_path, mesh_config.client_key_path),
        verify=mesh_config.ca_cert_path,
    )
    inbox = MeshInbox(mesh)
    forwarder = MeshToAwsForwarder(inbox, uploader, LoggingProbe(),
                                   disable_message_header_validation)
    return MeshToAwsForwarderService(forwarder, poll_frequency_sec)
Ejemplo n.º 8
0
def mock_mesh_inbox(client_msg_ids=None, count_messages_error=None):
    client_msg_ids = [] if client_msg_ids is None else client_msg_ids
    mock_mesh_client = MagicMock()
    mock_mesh_client.list_messages.return_value = client_msg_ids
    mock_mesh_client.count_messages.side_effect = count_messages_error
    return MeshInbox(mock_mesh_client)