test: get peers from peer store

This commit is contained in:
Roman 2024-06-04 23:04:08 +02:00
parent 03973b8897
commit d6874ff8f3
No known key found for this signature in database
GPG Key ID: B8FE070B54E11B75
3 changed files with 35 additions and 0 deletions

View File

@ -38,3 +38,7 @@ def delay(num_seconds):
def gen_step_id():
return f"{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}__{str(uuid.uuid4())}"
def parse_id(peer_info):
return peer_info["multiaddr"].split("/")[-1]

View File

@ -233,6 +233,12 @@ class WakuNode:
check_healthy()
check_ready()
def get_id(self):
try:
return self.info_response["listenAddresses"][0].split("/")[-1]
except Exception as ex:
raise AttributeError(f"Could not find ID in the info call because of error: {str(ex)}")
def get_enr_uri(self):
try:
return self.info_response["enrUri"]

View File

@ -0,0 +1,25 @@
import pytest
from src.libs.common import parse_id
from src.libs.custom_logger import get_custom_logger
from src.steps.relay import StepsRelay
logger = get_custom_logger(__name__)
@pytest.mark.usefixtures("setup_main_relay_nodes", "setup_optional_relay_nodes")
class TestPeerStore(StepsRelay):
def test_get_peers(self):
nodes = [self.node1, self.node2]
nodes.extend(self.optional_nodes)
ids = []
for node in nodes:
node_id = node.get_id()
ids.append(node_id)
for i in range(5):
others = []
for peer_info in nodes[i].get_peers():
others.append(parse_id(peer_info))
assert (i == 0 and len(others) == 4) or (i > 0 and len(others) == 1), f"Some nodes missing in the peer store of node {ids[i]}"