From bd1b46d8f9d5cb44ef9ce60103df2bb8a409393c Mon Sep 17 00:00:00 2001 From: Micah Peltier Date: Tue, 16 Nov 2021 09:59:58 -0700 Subject: [PATCH 1/3] feat: module creation and initial commit of Messages Received tests Signed-off-by: Micah Peltier --- int/tests/test_messagesreceived.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 int/tests/test_messagesreceived.py diff --git a/int/tests/test_messagesreceived.py b/int/tests/test_messagesreceived.py new file mode 100644 index 0000000..afd31d0 --- /dev/null +++ b/int/tests/test_messagesreceived.py @@ -0,0 +1,8 @@ +from echo_agent.client import EchoClient +from echo_agent.client import ConnectionInfo +import pytest + + +@pytest.mark.asyncio +async def test_messages_received(echo: EchoClient, connection: ConnectionInfo): + assert True From 292b57d5ad4685eefd4e63f4c6acad99843630a7 Mon Sep 17 00:00:00 2001 From: Micah Peltier Date: Mon, 20 Dec 2021 13:33:54 -0700 Subject: [PATCH 2/3] feat: added testing for Messages Received message Signed-off-by: Micah Peltier --- int/tests/test_messagesreceived.py | 114 ++++++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 2 deletions(-) diff --git a/int/tests/test_messagesreceived.py b/int/tests/test_messagesreceived.py index afd31d0..2c8d670 100644 --- a/int/tests/test_messagesreceived.py +++ b/int/tests/test_messagesreceived.py @@ -4,5 +4,115 @@ @pytest.mark.asyncio -async def test_messages_received(echo: EchoClient, connection: ConnectionInfo): - assert True +async def test_messages_received_no_id(echo: EchoClient, connection: ConnectionInfo): + """Testing that an empty ID list does not alter the queue.""" + + await echo.send_message( + connection, + { + "@type": "https://didcomm.org/messagepickup/2.0/status-request", + "~transport": {"return_route": "all"}, + }, + ) + initial_status = await echo.get_message(connection) + inital_count = initial_status["message_count"] + + await echo.send_message( + connection, + { + "@type": "https://didcomm.org/messagepickup/2.0/messages-received", + "message_id_list": [], + "~transport": {"return_route": "all"}, + }, + ) + + final_status = await echo.get_message(connection) + assert final_status["@type"] == "https://didcomm.org/messagepickup/2.0/status" + final_count = final_status["message_count"] + assert inital_count == final_count + + +@pytest.mark.asyncio +async def test_messages_received_with_id(echo: EchoClient, connection: ConnectionInfo): + """Testing that accurate ID's remove messages from the queue.""" + + for _ in range(2): + await echo.send_message( + connection, + { + "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/trust_ping/1.0/ping", + "response_resquested": True, + }, + ) + + await echo.send_message( + connection, + { + "@type": "https://didcomm.org/messagepickup/2.0/status-request", + "~transport": {"return_route": "all"}, + }, + ) + initial_status = await echo.get_message(connection) + inital_count = initial_status["message_count"] + + await echo.send_message( + connection, + { + "@type": "https://didcomm.org/messagepickup/2.0/delivery-request", + "~transport": {"return_route": "all"}, + "limit": 2, + }, + ) + + wrapped_msgs = await echo.get_message(connection) + assert wrapped_msgs["@type"] == "https://didcomm.org/messagepickup/2.0/delivery" + msg_ids = [] + + for _ in wrapped_msgs["~attach"]: + msg_ids.append(_["@id"]) + + await echo.send_message( + connection, + { + "@type": "https://didcomm.org/messagepickup/2.0/messages-received", + "message_id_list": msg_ids, + "~transport": {"return_route": "all"}, + }, + ) + + final_status = await echo.get_message(connection) + assert final_status["@type"] == "https://didcomm.org/messagepickup/2.0/status" + final_count = final_status["message_count"] + + assert final_count == inital_count - 2 + + +@pytest.mark.asyncio +async def test_messages_received_junk_id(echo: EchoClient, connection: ConnectionInfo): + """Testing that an incorrect ID list does not alter the queue.""" + + await echo.send_message( + connection, + { + "@type": "https://didcomm.org/messagepickup/2.0/status-request", + "~transport": {"return_route": "all"}, + }, + ) + initial_status = await echo.get_message(connection) + inital_count = initial_status["message_count"] + + await echo.send_message( + connection, + { + "@type": "https://didcomm.org/messagepickup/2.0/messages-received", + "message_id_list": [ + "A communications disruption can mean only one thing: invasion" + ], + "~transport": {"return_route": "all"}, + }, + ) + + final_status = await echo.get_message(connection) + assert final_status["@type"] == "https://didcomm.org/messagepickup/2.0/status" + final_count = final_status["message_count"] + assert inital_count == final_count From a6b3149d07dfb49c97134a48d6928b6ec79ac47f Mon Sep 17 00:00:00 2001 From: Micah Peltier Date: Mon, 20 Dec 2021 13:37:30 -0700 Subject: [PATCH 3/3] chore: minor cleanup Signed-off-by: Micah Peltier --- acapy_plugin_pickup/protocol.py | 9 --------- int/tests/conftest.py | 1 - 2 files changed, 10 deletions(-) diff --git a/acapy_plugin_pickup/protocol.py b/acapy_plugin_pickup/protocol.py index 0d41bd4..3e06904 100644 --- a/acapy_plugin_pickup/protocol.py +++ b/acapy_plugin_pickup/protocol.py @@ -180,15 +180,6 @@ class MessagesReceived(AgentMessage): message_type = f"{PROTOCOL}/messages-received" message_id_list: Set[str] - @staticmethod - def determine_session(manager: InboundTransportManager, key: str): - """Determine the session associated with the given key.""" - for session in manager.sessions.values(): - session = cast(InboundSession, session) - if key in session.reply_verkeys: - return session - return None - async def handle(self, context: RequestContext, responder: BaseResponder): """Handle MessageReceived message.""" if not self.transport or self.transport.return_route != "all": diff --git a/int/tests/conftest.py b/int/tests/conftest.py index 7931059..4c99fec 100644 --- a/int/tests/conftest.py +++ b/int/tests/conftest.py @@ -6,7 +6,6 @@ import hashlib import os -# TODO: Remove debugging tools before final commit import logging from acapy_client.client import Client