]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tests/krb5/kdc_base_test.py: Create loadparm only when needed
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Tue, 15 Jun 2021 23:40:41 +0000 (11:40 +1200)
committerStefan Metzmacher <metze@samba.org>
Thu, 1 Jul 2021 17:46:31 +0000 (17:46 +0000)
Now the .conf file is only loaded on its first use, which means that
SMB_CONF_PATH need not be defined for tests that don't make use of it.

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
python/samba/tests/krb5/kdc_base_test.py
python/samba/tests/krb5/test_ccache.py
python/samba/tests/krb5/test_ldap.py
python/samba/tests/krb5/test_rpc.py
python/samba/tests/krb5/test_smb.py

index f3c6b37d29fcd35c895ca9b83ef4a6677c99afaa..59ce546a181e9c3e5fd73dc09f39716ae8b02c8d 100644 (file)
@@ -66,7 +66,7 @@ class KDCBaseTest(RawKerberosTest):
 
     @classmethod
     def setUpClass(cls):
-        cls.lp = cls.get_loadparm(cls)
+        cls._lp = None
         cls.host = os.environ["SERVER"]
 
         cls._ldb = None
@@ -89,15 +89,22 @@ class KDCBaseTest(RawKerberosTest):
         self.do_asn1_print = global_asn1_print
         self.do_hexdump = global_hexdump
 
+    def get_lp(self):
+        if self._lp is None:
+            type(self)._lp = self.get_loadparm()
+
+        return self._lp
+
     def get_samdb(self):
         if self._ldb is None:
             creds = self.get_user_creds()
+            lp = self.get_lp()
 
             session = system_session()
             type(self)._ldb = SamDB(url="ldap://%s" % self.host,
                             session_info=session,
                             credentials=creds,
-                            lp=self.lp)
+                            lp=lp)
 
         return self._ldb
 
@@ -137,7 +144,7 @@ class KDCBaseTest(RawKerberosTest):
         ldb.add(details)
 
         creds = Credentials()
-        creds.guess(self.lp)
+        creds.guess(self.get_lp())
         creds.set_realm(ldb.domain_dns_name().upper())
         creds.set_domain(ldb.domain_netbios_name().upper())
         creds.set_password(password)
@@ -607,7 +614,7 @@ class KDCBaseTest(RawKerberosTest):
         creds.set_kerberos_state(MUST_USE_KERBEROS)
         creds.set_username(user_name, SPECIFIED)
         creds.set_realm(realm)
-        creds.set_named_ccache(cachefile.name, SPECIFIED, self.lp)
+        creds.set_named_ccache(cachefile.name, SPECIFIED, self.get_lp())
 
         # Return the credentials along with the cache file.
         return (creds, cachefile)
index c7857a6cf0eeaa4da7c2de8d9746572d328e2f20..feb7a7bd9beb1970877fd47d276b4fa91b1dd662 100755 (executable)
@@ -71,8 +71,10 @@ class CcacheTests(KDCBaseTest):
         # Authenticate in-process to the machine account using the user's
         # cached credentials.
 
+        lp = self.get_lp()
+
         settings = {}
-        settings["lp_ctx"] = self.lp
+        settings["lp_ctx"] = lp
         settings["target_hostname"] = mach_name
 
         gensec_client = gensec.Security.start_client(settings)
@@ -80,7 +82,7 @@ class CcacheTests(KDCBaseTest):
         gensec_client.want_feature(gensec.FEATURE_SEAL)
         gensec_client.start_mech_by_sasl_name("GSSAPI")
 
-        auth_context = AuthContext(lp_ctx=self.lp, ldb=samdb, methods=[])
+        auth_context = AuthContext(lp_ctx=lp, ldb=samdb, methods=[])
 
         gensec_server = gensec.Security.start_server(settings, auth_context)
         gensec_server.set_credentials(mach_credentials)
index 7e9405a8a920d4195b056e393885d3ff74803744..d304fb9d71ee0ed71cb27bbd71711529f5902474 100755 (executable)
@@ -74,7 +74,7 @@ class LdapTests(KDCBaseTest):
         # Connect to the machine account and retrieve the user SID.
         ldb_as_user = SamDB(url="ldap://%s" % mach_name,
                             credentials=creds,
-                            lp=self.lp)
+                            lp=self.get_lp())
         ldb_res = ldb_as_user.search('',
                                      scope=SCOPE_BASE,
                                      attrs=["tokenGroups"])
index c474e479d810ea74353011f4c5fbedf94373d6e3..324b57f2847ff38053f668b0ed0948cec8df4b91 100755 (executable)
@@ -62,7 +62,7 @@ class RpcTests(KDCBaseTest):
         # cached credentials.
 
         binding_str = "ncacn_np:%s[\\pipe\\lsarpc]" % mach_name
-        conn = lsa.lsarpc(binding_str, self.lp, creds)
+        conn = lsa.lsarpc(binding_str, self.get_lp(), creds)
 
         (account_name, _) = conn.GetUserName(None, None, None)
 
index 8f76e78afe3ca2ab1a6e50899e2590594c6c2e55..45d4fe5e0c14810e999aab9228d53947d5838055 100755 (executable)
@@ -82,7 +82,7 @@ class SmbTests(KDCBaseTest):
 
         # Connect to a share and retrieve the user SID.
         s3_lp = s3param.get_context()
-        s3_lp.load(self.lp.configfile)
+        s3_lp.load(self.get_lp().configfile)
 
         min_protocol = s3_lp.get("client min protocol")
         self.addCleanup(s3_lp.set, "client min protocol", min_protocol)