1 # Unix SMB/CIFS implementation. Tests for SamDB
2 # Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 3 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18 """Tests for samba.samdb."""
24 from samba.auth import system_session
25 from samba.provision import provision
26 from samba.tests import TestCaseInTempDir
27 from samba.dsdb import DS_DOMAIN_FUNCTION_2008_R2
30 class SamDBTestCase(TestCaseInTempDir):
31 """Base-class for tests with a Sam Database.
33 This is used by the Samba SamDB-tests, but e.g. also by the OpenChange
34 provisioning tests (which need a Sam).
38 super(SamDBTestCase, self).setUp()
39 self.session = system_session()
40 logger = logging.getLogger("selftest")
42 realm = "dsdb.samba.example.com"
44 server_role = "active directory domain controller"
45 self.result = provision(logger,
46 self.session, targetdir=self.tempdir,
47 realm=realm, domain=domain,
50 serverrole=server_role,
51 dns_backend="SAMBA_INTERNAL",
52 dom_for_fun_level=DS_DOMAIN_FUNCTION_2008_R2)
53 self.samdb = self.result.samdb
54 self.lp = self.result.lp
57 for f in ['names.tdb']:
58 os.remove(os.path.join(self.tempdir, f))
60 for d in ['etc', 'msg.lock', 'private', 'state', 'bind-dns']:
61 shutil.rmtree(os.path.join(self.tempdir, d))
63 super(SamDBTestCase, self).tearDown()