aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-cli/tests/fake_node.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-cli/tests/fake_node.py')
-rw-r--r--packages/meshbay-cli/tests/fake_node.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/packages/meshbay-cli/tests/fake_node.py b/packages/meshbay-cli/tests/fake_node.py
index 8f4356b..b4e64ff 100644
--- a/packages/meshbay-cli/tests/fake_node.py
+++ b/packages/meshbay-cli/tests/fake_node.py
@@ -76,6 +76,7 @@ class FakeNode:
"pk_x25519": self.identity.pk_x, "added_by_pk": "", "add_sig": "",
"add_nonce": "", "add_ts": 0}]
self.members: dict[str, Identity] = {} # sender → the device it signs with
+ self.unresponsive = False # pings go unanswered, as a dead link's
self.admin_ops: dict[str, dict] = {}
def add(self, path: str, name: str, data: bytes, uploader_id: str = "") -> dict:
@@ -273,6 +274,11 @@ class FakeChannel:
return {"type": "chat_keys_resp", "group_id": GROUP_ID,
**seal(n.gek, PURPOSE_CHAT_KEYS, "chat_keys_resp", GROUP_ID, payload)}
+ def _ping(self, msg):
+ if self.node.unresponsive:
+ return {"type": "error", "detail": "no answer"}
+ return {"type": "pong", "token": msg.get("token")}
+
def _group_roster_req(self, msg):
n = self.node
return {"type": "group_roster_resp", "group_id": GROUP_ID,