traffic: new version of model with packet_rate, version number
[samba.git] / python / samba / tests / samdb.py
1 # Unix SMB/CIFS implementation. Tests for SamDB
2 # Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
3 #
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.
8 #
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.
13 #
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/>.
16 #
17
18 """Tests for samba.samdb."""
19
20 import logging
21 import os
22 import shutil
23
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
28
29
30 class SamDBTestCase(TestCaseInTempDir):
31     """Base-class for tests with a Sam Database.
32
33     This is used by the Samba SamDB-tests, but e.g. also by the OpenChange
34     provisioning tests (which need a Sam).
35     """
36
37     def setUp(self):
38         super(SamDBTestCase, self).setUp()
39         self.session = system_session()
40         logger = logging.getLogger("selftest")
41         domain = "dsdb"
42         realm = "dsdb.samba.example.com"
43         host_name = "test"
44         server_role = "active directory domain controller"
45         self.result = provision(logger,
46                                 self.session, targetdir=self.tempdir,
47                                 realm=realm, domain=domain,
48                                 hostname=host_name,
49                                 use_ntvfs=True,
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
55
56     def tearDown(self):
57         for f in ['names.tdb']:
58             os.remove(os.path.join(self.tempdir, f))
59
60         for d in ['etc', 'msg.lock', 'private', 'state', 'bind-dns']:
61             shutil.rmtree(os.path.join(self.tempdir, d))
62
63         super(SamDBTestCase, self).tearDown()