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())
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()