From: Douglas Bagnall Date: Thu, 30 Oct 2025 20:27:27 +0000 (+1300) Subject: pytests: add TestCase.get_server_param() method X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fcb39cdcbc851f087eebc141389969cb0bde1750;p=thirdparty%2Fsamba.git pytests: add TestCase.get_server_param() method 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 Reviewed-by: Jennifer Sutton --- diff --git a/python/samba/tests/__init__.py b/python/samba/tests/__init__.py index dc3c4ab55ae..b1e28f11cb3 100644 --- a/python/samba/tests/__init__.py +++ b/python/samba/tests/__init__.py @@ -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