From efa74a24a9862cd63fa70d860bbb637c4d764aa7 Mon Sep 17 00:00:00 2001
From: Yaroslav Dynnikov <yaroslav.dynnikov@gmail.com>
Date: Fri, 20 Sep 2024 13:06:22 +0300
Subject: [PATCH] test: new pytest function set_service_password

---
 test/conftest.py | 27 +++++++++++----------------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/test/conftest.py b/test/conftest.py
index 7bdeaec56c..3644b5370e 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -642,11 +642,8 @@ class Instance:
     ):
         if user is None:
             user = "pico_service"
-            if password is None and self.service_password_file is not None:
-                with open(self.service_password_file, "r") as f:
-                    password = f.readline()
-                    if password.endswith("\n"):
-                        password = password[:-1]
+            if password is None:
+                password = self.service_password
 
         try:
             c = Connection(
@@ -1463,7 +1460,7 @@ class Instance:
         self.wait_online()
 
     @property
-    def password(self) -> Optional[str]:
+    def service_password(self) -> Optional[str]:
         if self.service_password_file is None:
             return None
         with open(self.service_password_file, "r") as f:
@@ -1519,10 +1516,7 @@ class Cluster:
         if not service_password:
             service_password = "password"
 
-        self.service_password_file = self.data_dir + "/password.txt"
-        with open(self.service_password_file, "w") as f:
-            print(service_password, file=f)
-        os.chmod(self.service_password_file, 0o600)
+        self.set_service_password(service_password)
 
         for _ in range(instance_count):
             self.add_instance(
@@ -1557,6 +1551,12 @@ class Cluster:
         with open(self.config_path, "w") as yaml_file:
             yaml_file.write(yaml)
 
+    def set_service_password(self, service_password: str):
+        self.service_password_file = self.data_dir + "/password.txt"
+        with open(self.service_password_file, "w") as f:
+            print(service_password, file=f)
+        os.chmod(self.service_password_file, 0o600)
+
     def add_instance(
         self,
         wait_online=True,
@@ -2100,6 +2100,7 @@ def unstarted_instance(
     cluster: Cluster, port_distributor: PortDistributor, pytestconfig
 ) -> Generator[Instance, None, None]:
     """Returns a deployed instance forming a single-node cluster."""
+    cluster.set_service_password("s3cr3t")
     instance = cluster.add_instance(wait_online=False)
 
     has_webui = bool(pytestconfig.getoption("--with-webui"))
@@ -2107,12 +2108,6 @@ def unstarted_instance(
         listen = f"{cluster.base_host}:{port_distributor.get()}"
         instance.env["PICODATA_HTTP_LISTEN"] = listen
 
-    password_file = f"{cluster.data_dir}/password.txt"
-    with open(password_file, "w") as f:
-        print("s3cr3t", file=f)
-    os.chmod(password_file, 0o600)
-    instance.service_password_file = password_file
-
     yield instance
 
 
-- 
GitLab