]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
pytests: add TestCase.get_server_param() method
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Thu, 30 Oct 2025 20:27:27 +0000 (09:27 +1300)
committerJennifer Sutton <jsutton@samba.org>
Thu, 20 Nov 2025 21:25:39 +0000 (21:25 +0000)
This makes it easier to get a loadparm value from the server smb.conf
(rather than the client smb.conf), so you can alter test behaviour
accordingly.

The class._server_lp attribute is lazily loaded when first needed.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jennifer Sutton <jennifersutton@catalyst.net.nz>
python/samba/tests/__init__.py

index dc3c4ab55ae958108a38aec1aa664c092dad128c..b1e28f11cb3eabe0f6d1e446202dff2f3cc97d46 100644 (file)
@@ -212,6 +212,22 @@ class TestCase(unittest.TestCase):
     def get_loadparm(cls, s3=False):
         return env_loadparm(s3=s3)
 
+    _server_lp = None
+
+    @classmethod
+    def get_server_param(cls, parameter, default=None):
+        """Get a parameter from the server configuration (which may
+        differ from the client config)."""
+        if cls._server_lp is None:
+            server_conf = env_get_var_value("SERVERCONFFILE")
+            cls._server_lp = param.LoadParm(filename_for_non_global_lp=server_conf)
+
+        p = cls._server_lp.get(parameter)
+        print(f"server param '{parameter}' is {p} ({type(p)})")
+        if p is None:
+            return default
+        return p
+
     def get_credentials(self):
         return cmdline_credentials