From 1a186dba0fd0ca34f59bce78df387de8948e2cd6 Mon Sep 17 00:00:00 2001 From: aya Date: Thu, 14 Aug 2025 15:19:46 +0300 Subject: [PATCH] work on the rest of tests --- src/node/api_clients/rest.py | 4 ++++ src/node/waku_node.py | 3 +++ tests/rest_flags/admin_flags.py | 25 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/src/node/api_clients/rest.py b/src/node/api_clients/rest.py index 464f5de7..c0bd2f7f 100644 --- a/src/node/api_clients/rest.py +++ b/src/node/api_clients/rest.py @@ -184,3 +184,7 @@ class REST(BaseClient): def get_debug_version(self): return self.rest_call("get", "debug/v1/version").text.strip() + + def get_peer(self, peer_id: str): + resp = self.rest_call("get", f"admin/v1/peer/{peer_id}") + return resp.json() diff --git a/src/node/waku_node.py b/src/node/waku_node.py index 8d11c65d..9a8d2e35 100644 --- a/src/node/waku_node.py +++ b/src/node/waku_node.py @@ -574,3 +574,6 @@ class WakuNode: def get_debug_version(self): return self._api.get_debug_version() + + def get_peer_info(self, peer_id: str): + return self._api.get_peer(peer_id) diff --git a/tests/rest_flags/admin_flags.py b/tests/rest_flags/admin_flags.py index 7a0d3b3e..e68ea057 100644 --- a/tests/rest_flags/admin_flags.py +++ b/tests/rest_flags/admin_flags.py @@ -76,3 +76,28 @@ class TestAdminFlags(StepsFilter, StepsStore, StepsRelay, StepsLightPush): 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" + + +def test_admin_peer_by_id(self): + self.node1.start(relay="true") + self.node2.start(relay="true", discv5_bootstrap_node=self.node1.get_enr_uri()) + peer_id = self.node2.get_multiaddr_with_id().rpartition("/p2p/")[2] + info = self.node1.get_peer_info(peer_id) + logger.debug(f"Node-1 /admin/v1/peer/{peer_id}: {info} \n") + logger.debug("Validate response schema") + for k in ("multiaddr", "protocols", "shards", "connected", "agent", "origin"): + assert k in info, f"missing field: {k}" + assert info["multiaddr"] == self.node2.get_multiaddr_with_id(), "multiaddr mismatch" + + +def test_admin_set_all_log_levels(self): + self.node1.start(relay="true") + levels = ["TRACE", "DEBUG", "INFO", "NOTICE", "WARN", "ERROR", "FATAL"] + for lvl in levels: + resp = self.node1.set_log_level(lvl) + logger.debug(f"Set log level ({lvl})") + assert resp.status_code == 200, f"failed to set log level {lvl} {resp.text}" + + resp = self.node1.set_log_level("TRACE") + logger.debug(f"Restore default log level (TRACE) -> status={resp.status_code}") + assert resp.status_code == 200, f"failed to revert log level: {resp.text}"