mirror of
https://github.com/logos-messaging/logos-messaging-interop-tests.git
synced 2026-01-02 14:03:08 +00:00
Add more admin tests
This commit is contained in:
parent
60a919e461
commit
16e5cc6e97
@ -82,6 +82,7 @@ class WakuNode:
|
||||
self._log_path = os.path.join(DOCKER_LOG_DIR, f"{docker_log_prefix}__{self._image_name.replace('/', '_')}.log")
|
||||
self._docker_manager = DockerManager(self._image_name)
|
||||
self._container = None
|
||||
self.start_args = {}
|
||||
logger.debug(f"WakuNode instance initialized with log path {self._log_path}")
|
||||
|
||||
@retry(stop=stop_after_delay(60), wait=wait_fixed(0.1), reraise=True)
|
||||
@ -175,7 +176,7 @@ class WakuNode:
|
||||
logger.info(f"RLN credentials not set or credential store not available, starting without RLN")
|
||||
|
||||
logger.debug(f"Using volumes {self._volumes}")
|
||||
|
||||
self.start_args = dict(default_args)
|
||||
self._container = self._docker_manager.start_container(
|
||||
self._docker_manager.image,
|
||||
ports=self._ports,
|
||||
|
||||
@ -21,6 +21,8 @@ class TestE2E(StepsFilter, StepsStore, StepsRelay, StepsLightPush):
|
||||
def nodes(self):
|
||||
self.node1 = WakuNode(NODE_2, f"node1_{self.test_id}")
|
||||
self.node2 = WakuNode(NODE_2, f"node2_{self.test_id}")
|
||||
self.node3 = WakuNode(NODE_2, f"node3_{self.test_id}")
|
||||
self.node4 = WakuNode(NODE_2, f"node3_{self.test_id}")
|
||||
|
||||
def test_admin_filter_subscriptions_shape(self):
|
||||
self.node1.start(filter="true", relay="true")
|
||||
@ -42,3 +44,35 @@ class TestE2E(StepsFilter, StepsStore, StepsRelay, StepsLightPush):
|
||||
|
||||
stats = self.node1.get_peer_stats()
|
||||
logger.debug(f"Node admin peers stats {stats}")
|
||||
|
||||
def test_admin_peers_stats_counts(self):
|
||||
self.node1.start(filter="true", relay="true")
|
||||
self.node2.start(relay="true", discv5_bootstrap_node=self.node1.get_enr_uri())
|
||||
self.node3.start(relay="true", discv5_bootstrap_node=self.node1.get_enr_uri())
|
||||
self.node1.add_peers([self.node3.get_multiaddr_with_id()])
|
||||
self.node4.start(relay="false", filternode=self.node1.get_multiaddr_with_id(), discv5_bootstrap_node=self.node1.get_enr_uri())
|
||||
self.node4.set_filter_subscriptions({"requestId": "1", "contentFilters": [self.test_content_topic], "pubsubTopic": self.test_pubsub_topic})
|
||||
|
||||
stats = self.node1.get_peer_stats()
|
||||
logger.debug(f"Node-1 admin peers stats {stats}")
|
||||
|
||||
assert stats["Sum"]["Total peers"] == 3, "expected 3 peers connected to node1"
|
||||
assert stats["Relay peers"]["Total relay peers"] == 2, "expected exactly 2 relay peer"
|
||||
|
||||
def test_admin_peers_mesh_on_shard_contains_node2(self):
|
||||
self.node1.start(relay="true")
|
||||
self.node2.start(relay="true", discv5_bootstrap_node=self.node1.get_enr_uri())
|
||||
self.node3.start(relay="true", discv5_bootstrap_node=self.node1.get_enr_uri())
|
||||
mesh = self.node1.get_mesh_peers_on_shard(self.node1.start_args["shard"])
|
||||
logger.debug(f"Node-1 mesh on the shard {mesh}")
|
||||
|
||||
logger.debug("Validate the schema variables")
|
||||
assert isinstance(mesh["shard"], int) and mesh["shard"] == int(self.node1.start_args["shard"]), "shard mismatch"
|
||||
peer_maddrs = [p["multiaddr"] for p in mesh["peers"]]
|
||||
assert self.node2.get_multiaddr_with_id() in peer_maddrs and self.node3.get_multiaddr_with_id() in peer_maddrs, "node2 or node3 not in mesh"
|
||||
for p in mesh["peers"]:
|
||||
assert isinstance(p["protocols"], list) and all(isinstance(x, str) for x in p["protocols"]), "protocols must be [str]"
|
||||
assert isinstance(p["shards"], list) and all(isinstance(x, int) for x in p["shards"]), "shards must be [int]"
|
||||
assert isinstance(p["agent"], str), "agent not str"
|
||||
assert isinstance(p["origin"], str), "origin not str"
|
||||
assert isinstance(p.get("score", 0.0), (int, float)), "score not number"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user