test: restart survival with persistent peer store

This commit is contained in:
Roman 2024-06-07 21:19:20 +02:00
parent 96993f1555
commit 909274d7b0
No known key found for this signature in database
GPG Key ID: B8FE070B54E11B75
3 changed files with 67 additions and 2 deletions

View File

@ -106,6 +106,11 @@ class WakuNode:
else:
remove_container = True
if kwargs.get("peer_persistence") == "true":
if self.is_gowaku():
kwargs["persist_peers"] = kwargs["peer_persistence"]
del kwargs["peer_persistence"]
default_args.update(sanitize_docker_flags(kwargs))
rln_args, rln_creds_set, keystore_path = self.parse_rln_credentials(default_args, False)

54
src/steps/peer_store.py Normal file
View File

@ -0,0 +1,54 @@
import os
import inspect
import pytest
import allure
from src.node.waku_message import WakuMessage
from src.steps.common import StepsCommon
from src.test_data import PUBSUB_TOPICS_RLN, VALID_PUBSUB_TOPICS
from src.env_vars import DEFAULT_NWAKU, RLN_CREDENTIALS, NODEKEY, NODE_1, NODE_2, ADDITIONAL_NODES
from src.libs.common import gen_step_id, delay
from src.libs.custom_logger import get_custom_logger
from src.node.waku_node import WakuNode, rln_credential_store_ready
logger = get_custom_logger(__name__)
class StepsPeerStore(StepsCommon):
test_pubsub_topic = VALID_PUBSUB_TOPICS[0]
test_content_topic = "/test/1/waku-relay/proto"
test_payload = "Relay works!!"
main_nodes = []
optional_nodes = []
multiaddr_list = []
@allure.step
def setup_first_relay_node(self, **kwargs):
self.node1 = WakuNode(NODE_1, f"node1_{self.test_id}")
self.node1.start(relay="true", nodekey=NODEKEY, **kwargs)
self.enr_uri = self.node1.get_enr_uri()
self.multiaddr_with_id = self.node1.get_multiaddr_with_id()
self.main_nodes.extend([self.node1])
@allure.step
def setup_second_relay_node(self, **kwargs):
self.node2 = WakuNode(NODE_2, f"node2_{self.test_id}")
self.node2.start(
relay="true",
discv5_bootstrap_node=self.enr_uri,
**kwargs,
)
self.add_node_peer(self.node2, [self.multiaddr_with_id])
self.main_nodes.extend([self.node2])
@allure.step
def setup_third_relay_node(self, **kwargs):
self.node3 = WakuNode(NODE_1, f"node2_{self.test_id}")
self.node3.start(
relay="true",
discv5_bootstrap_node=self.enr_uri,
**kwargs,
)
self.add_node_peer(self.node3, [self.multiaddr_with_id])
self.main_nodes.extend([self.node3])

View File

@ -1,14 +1,15 @@
import pytest
from src.libs.common import peer_info2id, peer_info2multiaddr, multiaddr2id
from src.libs.common import peer_info2id, peer_info2multiaddr, multiaddr2id, delay
from src.libs.custom_logger import get_custom_logger
from src.steps.peer_store import StepsPeerStore
from src.steps.relay import StepsRelay
from src.steps.store import StepsStore
logger = get_custom_logger(__name__)
class TestPeerStore(StepsRelay, StepsStore):
class TestPeerStore(StepsPeerStore, StepsRelay, StepsStore):
@pytest.mark.usefixtures("setup_main_relay_nodes", "setup_optional_relay_nodes")
def test_get_peers(self):
nodes = [self.node1, self.node2]
@ -64,3 +65,8 @@ class TestPeerStore(StepsRelay, StepsStore):
logger.debug(f"Node 2 connected peers {node2_peers}")
assert len(node1_peers) == 2 and len(node2_peers) == 2, f"Some nodes and/or their services are missing"
@pytest.mark.skip(reason="failed to store peers")
def test_use_persistent_storage_survive_restart(self):
self.setup_first_relay_node(peer_persistence="true")
self.setup_second_relay_node()