diff --git a/src/steps/rln.py b/src/steps/rln.py index d757404a..d2017489 100644 --- a/src/steps/rln.py +++ b/src/steps/rln.py @@ -44,7 +44,7 @@ class StepsRLN: self.main_nodes.extend([self.node1, self.node2]) @allure.step - def setup_first_non_default_rln_relay_node(self, **kwargs): + def setup_first_rln_relay_node(self, **kwargs): self.node1 = WakuNode(DEFAULT_NWAKU, f"node1_{self.test_id}") self.node1.start(relay="true", nodekey=NODEKEY, rln_creds_source=RLN_CREDENTIALS, rln_creds_id="1", rln_relay_membership_index="1", **kwargs) self.enr_uri = self.node1.get_enr_uri() @@ -52,7 +52,7 @@ class StepsRLN: self.main_nodes.extend([self.node1]) @allure.step - def setup_second_non_default_rln_relay_node(self, **kwargs): + def setup_second_rln_relay_node(self, **kwargs): self.node2 = WakuNode(DEFAULT_NWAKU, f"node2_{self.test_id}") self.node2.start( relay="true", @@ -98,3 +98,13 @@ class StepsRLN: sender = self.node1 sender.send_relay_message(message, pubsub_topic) + + @allure.step + def ensure_relay_subscriptions_on_nodes(self, node_list, pubsub_topic_list): + for node in node_list: + node.set_relay_subscriptions(pubsub_topic_list) + + @allure.step + def subscribe_main_relay_nodes(self): + logger.debug(f"Running fixture setup: {inspect.currentframe().f_code.co_name}") + self.ensure_relay_subscriptions_on_nodes(self.main_nodes, [self.test_pubsub_topic]) diff --git a/tests/relay/test_rln.py b/tests/relay/test_rln.py index e41a56b8..d48fcd69 100644 --- a/tests/relay/test_rln.py +++ b/tests/relay/test_rln.py @@ -12,9 +12,12 @@ from src.test_data import SAMPLE_INPUTS logger = get_custom_logger(__name__) -@pytest.mark.usefixtures("register_main_rln_relay_nodes", "setup_main_rln_relay_nodes", "subscribe_main_relay_nodes") +@pytest.mark.usefixtures("register_main_rln_relay_nodes") class TestRelayRLN(StepsRLN, StepsRelay): def test_publish_with_valid_payloads_at_slow_rate(self): + self.setup_first_rln_relay_node() + self.setup_second_rln_relay_node() + self.subscribe_main_relay_nodes() failed_payloads = [] for payload in SAMPLE_INPUTS[:5]: logger.debug(f'Running test with payload {payload["description"]}') @@ -24,10 +27,13 @@ class TestRelayRLN(StepsRLN, StepsRelay): except Exception as e: logger.error(f'Payload {payload["description"]} failed: {str(e)}') failed_payloads.append(payload["description"]) - delay(self.epoch_time) + delay(1) assert not failed_payloads, f"Payloads failed: {failed_payloads}" def test_publish_with_valid_payloads_at_spam_rate(self): + self.setup_first_rln_relay_node() + self.setup_second_rln_relay_node() + self.subscribe_main_relay_nodes() previous = math.trunc(time()) for i, payload in enumerate(SAMPLE_INPUTS[:4]): logger.debug(f'Running test with payload {payload["description"]}') @@ -43,13 +49,16 @@ class TestRelayRLN(StepsRLN, StepsRelay): assert "RLN validation failed" in str(e) def test_publish_with_valid_payloads_at_variable_rate(self): + self.setup_first_rln_relay_node() + self.setup_second_rln_relay_node() + self.subscribe_main_relay_nodes() previous = math.trunc(time()) for i, payload in enumerate(SAMPLE_INPUTS): logger.debug(f'Running test with payload {payload["description"]}') message = self.create_message(payload=to_base64(payload["value"])) try: if i % 2 == 1: # every sample with odd index is sent slowly - delay(self.epoch_time + 1) + delay(1 + 1) now = math.trunc(time()) logger.debug(f"Message sent at timestamp {now}") self.publish_message(message)