From 3b7c18fa73706dc79efa9afac5bfe4ff5d4946a6 Mon Sep 17 00:00:00 2001
From: zphrs <z@zephiris.dev>
Date: Fri, 14 Mar 2025 18:29:19 -0700
Subject: [PATCH] made kvsmulticlient support disabling persistence of metadata

---
 tests/helper.py | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/tests/helper.py b/tests/helper.py
index 6840234..e134497 100644
--- a/tests/helper.py
+++ b/tests/helper.py
@@ -15,7 +15,6 @@ class KVSTestFixture:
         self.clients: list[KVSClient] = []
         self.log = log
 
-
     def spawn_cluster(self):
         self.log("\n> SPAWN CLUSTER")
         self.conductor.spawn_cluster(node_count=self.node_count)
@@ -40,9 +39,9 @@ class KVSTestFixture:
     def rebroadcast_view(self, new_view: Dict[str, List[Dict[str, Any]]]):
         for i, client in enumerate(self.clients):
             r = client.resend_last_view_with_ips_from_new_view(new_view)
-            assert (
-                r.status_code == 200
-            ),  f"expected 200 to ack view, got {r.status_code}"
+            assert r.status_code == 200, (
+                f"expected 200 to ack view, got {r.status_code}"
+            )
             self.log(f"view resent to node {i}: {r.status_code} {r.text}")
 
     def send_view(self, node_id: int, view: Dict[str, List[Dict[str, Any]]]):
@@ -64,16 +63,30 @@ class KVSTestFixture:
 
 
 class KVSMultiClient:
-    def __init__(self, clients: List[KVSClient], name: str, log: Logger):
+    def __init__(
+        self, clients: List[KVSClient], name: str, log: Logger, persist_metadata=True
+    ):
         self.clients = clients
-        self.metadata = None
+        self._metadata = None
         self.name = name
         self.req = 0
         self.log = log
+        self.persist_metadata = persist_metadata
 
         # internal model of kvs
         self._kvs_model = {}
 
+    @property
+    def metadata(self):
+        """I'm the 'x' property."""
+        print("getter of x called")
+        return self._metadata
+
+    @metadata.setter
+    def metadata(self, value):
+        print("setter of x called")
+        self._metadata = value if self.persist_metadata else None
+
     def reset_model(self):
         self._kvs_model = {}
         self.metadata = None
-- 
GitLab