adding test test_store_filter_interaction_with_six_nodes

This commit is contained in:
aya 2024-10-29 12:13:53 +03:00
parent 647fff4679
commit 8385bd7309

View File

@ -179,48 +179,45 @@ class TestE2E(StepsFilter, StepsStore, StepsRelay, StepsLightPush):
# self.node1 relays and we check that self.node10 receives the message
self.check_published_message_reaches_relay_peer(sender=self.node1, peer_list=[self.node10], message_propagation_delay=1)
def test_relay_six_nodes(self):
logger.debug(f"create additional 6 nodes")
def test_store_filter_interaction_with_six_nodes(self):
logger.debug(f"create 6 nodes")
self.node4 = WakuNode(NODE_2, f"node3_{self.test_id}")
self.node5 = WakuNode(NODE_2, f"node3_{self.test_id}")
self.node6 = WakuNode(NODE_2, f"node3_{self.test_id}")
logger.debug(f"start the 6 nodes with their corresponding config")
logger.debug(f"start 5 nodes with their corresponding config")
self.node1.start(relay="true", store="true")
self.node2.start(relay="true", store="true", discv5_bootstrap_node=self.node1.get_enr_uri())
self.node3.start(relay="true", store="true", discv5_bootstrap_node=self.node2.get_enr_uri())
self.node4.start(relay="true", store="true", filter="true", discv5_bootstrap_node=self.node3.get_enr_uri())
self.node5.start(relay="false", storenode=self.node4.get_multiaddr_with_id(), discv5_bootstrap_node=self.node4.get_enr_uri())
self.node6.start(relay="false", filter="true", filternode=self.node4.get_multiaddr_with_id())
self.node4.start(relay="true", filter="true", store="true", discv5_bootstrap_node=self.node3.get_enr_uri())
self.node6.start(relay="true", filter="true", filternode=self.node4.get_multiaddr_with_id())
logger.debug(f"subscribe nodes to relay pubsub topics")
self.node1.set_relay_subscriptions([self.test_pubsub_topic])
self.node2.set_relay_subscriptions([self.test_pubsub_topic])
self.node3.set_relay_subscriptions([self.second_pubsub_topic])
self.node4.set_relay_subscriptions([self.test_pubsub_topic])
logger.debug(f" msg1 created")
msg1 = self.create_message(contentTopic=self.test_content_topic)
logger.debug(f"node6 subscribe to filter for pubsubtopic {self.test_pubsub_topic}")
# self.node6.set_filter_subscriptions({"requestId": "1", "contentFilters": [self.test_content_topic], "pubsubTopic": self.test_pubsub_topic})
self.node6.set_relay_subscriptions([self.test_pubsub_topic])
logger.debug(f"wait for all nodes auto connection")
node_list = [self.node1, self.node2, self.node3, self.node4]
self.wait_for_autoconnection(node_list, hard_wait=30)
logger.debug(f"node6 subscribe to filter for pubsubtopic {self.test_pubsub_topic}")
self.node6.set_filter_subscriptions({"requestId": "1", "contentFilters": [self.test_content_topic], "pubsubTopic": self.test_pubsub_topic})
logger.debug(f" node1 publish message for topic {self.test_pubsub_topic}")
m = self.publish_message(sender=self.node1, pubsub_topic=self.test_pubsub_topic, message=msg1)
message = self.create_message()
m = self.publish_message(sender=self.node1, pubsub_topic=self.test_pubsub_topic, message=message)
delay(5)
logger.debug(f"node6 inquery for filter messages on pubsubtopic {self.test_pubsub_topic} & contenttopic {self.test_content_topic}")
# messages_response = self.get_filter_messages(self.test_content_topic, pubsub_topic=self.test_pubsub_topic, node=self.node6)
# logger.debug(f"filter inqeury response is {messages_response}")
# assert len(messages_response) == 1 , f"filtered messages count doesn't match published messages"
messages_response = self.get_filter_messages(self.test_content_topic, pubsub_topic=self.test_pubsub_topic, node=self.node6)
logger.debug(f"filter inqeury response is {messages_response}")
assert len(messages_response) == 1, f"filtered messages count doesn't match published messages"
logger.debug(f"node6 comes online")
# self.node5.start(relay="false", store="true",storenode=self.node4.get_multiaddr_with_id(), discv5_bootstrap_node=self.node4.get_enr_uri())
# self.wait_for_autoconnection([self.node4, self.node5], hard_wait=30)
# self.node5.set_relay_subscriptions([self.test_pubsub_topic])
delay(5)
self.check_published_message_is_stored(page_size=50, ascending="true", store_node=self.node5)
logger.debug(f"node5 goes live !!")
self.node5.start(relay="false", storenode=self.node4.get_multiaddr_with_id(), discv5_bootstrap_node=self.node4.get_enr_uri())
delay(2)
logger.debug(f"node5 makes request to get stored messages ")
self.check_published_message_is_stored(page_size=50, ascending="true", store_node=self.node5, messages_to_check=[message])