Use created loadparm context, rather than the one specified on the command-line.
[amitay/samba.git] / source4 / scripting / python / samba / tests / samdb.py
index 7e8ba053d44a42f50bad7f23ef9a3487370b9b84..e0bbf07ba8a00e4ae20bb27454928bf41a1b4725 100644 (file)
 from samba.auth import system_session
 from samba.credentials import Credentials
 import os
-from samba.provision import setup_samdb, guess_names, setup_templatesdb
+from samba.provision import setup_samdb, guess_names, setup_templatesdb, make_smbconf, find_setup_dir
 from samba.samdb import SamDB
-from samba.tests import cmdline_loadparm, TestCaseInTempDir
-from samba import security
+from samba.tests import TestCaseInTempDir
+from samba.dcerpc import security
 from unittest import TestCase
 import uuid
+from samba import param
 
 class SamDBTestCase(TestCaseInTempDir):
+
+    def setup_path(self, relpath):
+        return os.path.join(find_setup_dir(), relpath)
+
     def setUp(self):
         super(SamDBTestCase, self).setUp()
         invocationid = str(uuid.uuid4())
@@ -36,31 +41,44 @@ class SamDBTestCase(TestCaseInTempDir):
         schemadn = "CN=Schema," + configdn
         domainguid = str(uuid.uuid4())
         policyguid = str(uuid.uuid4())
-        setup_path = lambda x: os.path.join("setup", x)
         creds = Credentials()
         creds.set_anonymous()
         domainsid = security.random_sid()
         hostguid = str(uuid.uuid4())
         path = os.path.join(self.tempdir, "samdb.ldb")
         session_info = system_session()
-        names = guess_names(lp=cmdline_loadparm, hostname="foo", 
-                            domain="EXAMPLE.COM", dnsdomain="example.com", 
-                            serverrole="domain controller", 
+        
+        hostname="foo"
+        domain="EXAMPLE"
+        dnsdomain="example.com" 
+        serverrole="domain controller"
+
+        smbconf = os.path.join(self.tempdir, "smb.conf")
+        make_smbconf(smbconf, self.setup_path, hostname, domain, dnsdomain, 
+                     serverrole, self.tempdir)
+
+        self.lp = param.LoadParm()
+        self.lp.load(smbconf)
+
+        names = guess_names(lp=self.lp, hostname=hostname, 
+                            domain=domain, dnsdomain=dnsdomain, 
+                            serverrole=serverrole, 
                             domaindn=self.domaindn, configdn=configdn, 
                             schemadn=schemadn)
         setup_templatesdb(os.path.join(self.tempdir, "templates.ldb"), 
-                          setup_path, session_info=session_info, 
-                          credentials=creds, lp=cmdline_loadparm)
-        self.samdb = setup_samdb(path, setup_path, session_info, creds, 
-                                 cmdline_loadparm, names, 
+                          self.setup_path, session_info=session_info, 
+                          credentials=creds, lp=self.lp)
+        self.samdb = setup_samdb(path, self.setup_path, session_info, creds, 
+                                 self.lp, names, 
                                  lambda x: None, domainsid, 
                                  "# no aci", domainguid, 
                                  policyguid, False, "secret", 
                                  "secret", "secret", invocationid, 
                                  "secret", "domain controller")
+
     def tearDown(self):
         for f in ['templates.ldb', 'schema.ldb', 'configuration.ldb', 
-                  'users.ldb', 'samdb.ldb']:
+                  'users.ldb', 'samdb.ldb', 'smb.conf']:
             os.remove(os.path.join(self.tempdir, f))
         super(SamDBTestCase, self).tearDown()