From 6e6c6742dddb5f95cc10b3ca24bc968cc2c432df Mon Sep 17 00:00:00 2001 From: aya Date: Tue, 5 Aug 2025 23:02:33 +0300 Subject: [PATCH 1/4] First test added --- tests/rendezvous/__init__.py | 0 tests/rendezvous/test_rendezvous_e2e.py | 38 +++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 tests/rendezvous/__init__.py create mode 100644 tests/rendezvous/test_rendezvous_e2e.py diff --git a/tests/rendezvous/__init__.py b/tests/rendezvous/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/rendezvous/test_rendezvous_e2e.py b/tests/rendezvous/test_rendezvous_e2e.py new file mode 100644 index 00000000..9c2064e5 --- /dev/null +++ b/tests/rendezvous/test_rendezvous_e2e.py @@ -0,0 +1,38 @@ +import pytest +from src.env_vars import NODE_1, NODE_2, STRESS_ENABLED +from src.libs.common import delay +from src.libs.custom_logger import get_custom_logger +from src.node.waku_node import WakuNode +from src.steps.filter import StepsFilter +from src.steps.light_push import StepsLightPush +from src.steps.relay import StepsRelay +from src.steps.store import StepsStore + +logger = get_custom_logger(__name__) + +""" + +This tests will cover rendezvous protocol e2e scenarios + +""" + + +class TestE2E(StepsRelay): + @pytest.fixture(scope="function", autouse=True) + def nodes(self): + self.node1 = WakuNode(NODE_2, f"node1_{self.test_id}") + self.node2 = WakuNode(NODE_1, f"node2_{self.test_id}") + self.node3 = WakuNode(NODE_2, f"node3_{self.test_id}") + + def test_basic_rendezvous_register_and_discover(self): + self.node1.start(rendezvous="true") + node1_enr = self.node1.get_enr_uri() + + self.node2.start(rendezvous="true") + delay(5) + + self.node2.stop() + self.node2.start(rendezvous="true") + delay(10) + discovered = self.node2.get_peers() + assert len(discovered) > 0, "No peers discovered via Rendezvous" From 97d2dade0a4e63289c3645fa9364a7edb4210857 Mon Sep 17 00:00:00 2001 From: aya Date: Wed, 6 Aug 2025 22:23:57 +0300 Subject: [PATCH 2/4] Enabling relay in test --- tests/rendezvous/test_rendezvous_e2e.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/tests/rendezvous/test_rendezvous_e2e.py b/tests/rendezvous/test_rendezvous_e2e.py index 9c2064e5..0660e1d6 100644 --- a/tests/rendezvous/test_rendezvous_e2e.py +++ b/tests/rendezvous/test_rendezvous_e2e.py @@ -25,14 +25,13 @@ class TestE2E(StepsRelay): self.node3 = WakuNode(NODE_2, f"node3_{self.test_id}") def test_basic_rendezvous_register_and_discover(self): - self.node1.start(rendezvous="true") + self.node1.start(rendezvous="true", relay="true") node1_enr = self.node1.get_enr_uri() - self.node2.start(rendezvous="true") + self.node2.start(rendezvous="true", relay="true") delay(5) - - self.node2.stop() - self.node2.start(rendezvous="true") - delay(10) + self.node1.set_relay_subscriptions([self.test_pubsub_topic]) + self.node2.set_relay_subscriptions([self.test_pubsub_topic]) + self.wait_for_autoconnection([self.node1, self.node2], hard_wait=30) discovered = self.node2.get_peers() assert len(discovered) > 0, "No peers discovered via Rendezvous" From 0cebf45b2192d6f81940413536d88d2b516d89e0 Mon Sep 17 00:00:00 2001 From: aya Date: Sun, 24 Aug 2025 22:27:23 +0300 Subject: [PATCH 3/4] trying different scenarios to make the protocol work --- tests/rendezvous/test_rendezvous_e2e.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/rendezvous/test_rendezvous_e2e.py b/tests/rendezvous/test_rendezvous_e2e.py index 0660e1d6..5bf527bb 100644 --- a/tests/rendezvous/test_rendezvous_e2e.py +++ b/tests/rendezvous/test_rendezvous_e2e.py @@ -26,12 +26,10 @@ class TestE2E(StepsRelay): def test_basic_rendezvous_register_and_discover(self): self.node1.start(rendezvous="true", relay="true") - node1_enr = self.node1.get_enr_uri() - self.node2.start(rendezvous="true", relay="true") + self.node3.start(rendezvous="true") + self.node2.add_peers([self.node1.get_multiaddr_with_id(), self.node3.get_multiaddr_with_id()]) delay(5) - self.node1.set_relay_subscriptions([self.test_pubsub_topic]) - self.node2.set_relay_subscriptions([self.test_pubsub_topic]) - self.wait_for_autoconnection([self.node1, self.node2], hard_wait=30) - discovered = self.node2.get_peers() + discovered = self.node3.get_peers() + logger.debug(f"Node3 peers count is : {discovered}") assert len(discovered) > 0, "No peers discovered via Rendezvous" From fb1fab9846c485b456d25aa339ebf11957611c5d Mon Sep 17 00:00:00 2001 From: aya Date: Sun, 5 Oct 2025 16:33:00 +0300 Subject: [PATCH 4/4] altered test scenario after issue closed by devs --- tests/rendezvous/test_rendezvous_e2e.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/rendezvous/test_rendezvous_e2e.py b/tests/rendezvous/test_rendezvous_e2e.py index 5bf527bb..f30fb71e 100644 --- a/tests/rendezvous/test_rendezvous_e2e.py +++ b/tests/rendezvous/test_rendezvous_e2e.py @@ -26,10 +26,14 @@ class TestE2E(StepsRelay): def test_basic_rendezvous_register_and_discover(self): self.node1.start(rendezvous="true", relay="true") - self.node2.start(rendezvous="true", relay="true") - self.node3.start(rendezvous="true") - self.node2.add_peers([self.node1.get_multiaddr_with_id(), self.node3.get_multiaddr_with_id()]) delay(5) + self.node2.start(rendezvous="true", relay="true", discv5_bootstrap_node=self.node1.get_enr_uri()) + self.node1.set_relay_subscriptions([self.test_pubsub_topic]) + self.node2.set_relay_subscriptions([self.test_pubsub_topic]) + self.wait_for_autoconnection([self.node1, self.node2], hard_wait=30) + self.node3.start(rendezvous="true", relay="true") + self.node2.add_peers([self.node3.get_multiaddr_with_id()]) + delay(60) discovered = self.node3.get_peers() - logger.debug(f"Node3 peers count is : {discovered}") + logger.debug(f"Node3 peers count is : {len(discovered)}") assert len(discovered) > 0, "No peers discovered via Rendezvous"