mirror of
https://github.com/logos-messaging/logos-messaging-interop-tests.git
synced 2026-01-09 09:23:10 +00:00
65 lines
3.3 KiB
Python
65 lines
3.3 KiB
Python
import pytest
|
|
from src.env_vars import NODE_1
|
|
from src.libs.common import to_base64
|
|
from src.libs.custom_logger import get_custom_logger
|
|
from src.node.waku_message import WakuMessage
|
|
from src.steps.store import StepsStore
|
|
from src.test_data import SAMPLE_INPUTS
|
|
|
|
logger = get_custom_logger(__name__)
|
|
|
|
# TO DO test without pubsubtopic freezes
|
|
|
|
|
|
@pytest.mark.usefixtures("node_setup")
|
|
class TestApiFlags(StepsStore):
|
|
def test_store_with_peerAddr(self):
|
|
self.publish_message()
|
|
self.check_published_message_is_stored(store_node=self.store_node1, peer_addr=self.multiaddr_list[0])
|
|
|
|
@pytest.mark.xfail("nwaku" in NODE_1, reason="Bug reported: https://github.com/waku-org/nwaku/issues/2715")
|
|
def test_store_with_hashes(self):
|
|
message_hash_list = []
|
|
for payload in SAMPLE_INPUTS:
|
|
message = self.create_message(payload=to_base64(payload["value"]))
|
|
self.publish_message(message=message)
|
|
message_hash_list.append(self.compute_message_hash(self.test_pubsub_topic, message))
|
|
for node in self.store_nodes:
|
|
for message_hash in message_hash_list:
|
|
store_response = node.get_store_messages(pubsub_topic=self.test_pubsub_topic, hashes=message_hash, page_size=50, ascending="true")
|
|
assert len(store_response["messages"]) == 1
|
|
assert store_response["messages"][0]["messageHash"]["data"] == message_hash
|
|
|
|
@pytest.mark.xfail("nwaku" in NODE_1, reason="Bug reported: https://github.com/waku-org/nwaku/issues/2715")
|
|
def test_store_with_mulitple_hashes(self):
|
|
message_hash_list = []
|
|
for payload in SAMPLE_INPUTS:
|
|
message = self.create_message(payload=to_base64(payload["value"]))
|
|
self.publish_message(message=message)
|
|
message_hash_list.append(self.compute_message_hash(self.test_pubsub_topic, message))
|
|
for node in self.store_nodes:
|
|
store_response = node.get_store_messages(
|
|
pubsub_topic=self.test_pubsub_topic, hashes=f"{message_hash_list[0]},{message_hash_list[4]}", page_size=50, ascending="true"
|
|
)
|
|
assert len(store_response["messages"]) == 2
|
|
assert (
|
|
store_response["messages"][0]["messageHash"]["data"] == message_hash_list[0]
|
|
), "Incorrect messaged filtered based on multiple hashes"
|
|
assert (
|
|
store_response["messages"][1]["messageHash"]["data"] == message_hash_list[4]
|
|
), "Incorrect messaged filtered based on multiple hashes"
|
|
|
|
def test_store_include_data(self):
|
|
message_list = []
|
|
for payload in SAMPLE_INPUTS:
|
|
message = self.create_message(payload=to_base64(payload["value"]))
|
|
self.publish_message(message=message)
|
|
message_list.append(message)
|
|
for node in self.store_nodes:
|
|
store_response = node.get_store_messages(pubsub_topic=self.test_pubsub_topic, include_data="true", page_size=50, ascending="true")
|
|
assert len(store_response["messages"]) == len(SAMPLE_INPUTS)
|
|
for index, message in enumerate(store_response["messages"]):
|
|
assert message["message"]["payload"] == message_list[index]["payload"]
|
|
waku_message = WakuMessage([message["message"]])
|
|
waku_message.assert_received_message(message_list[index])
|