2008-02-13 02:18:45 +01:00
# Unix SMB/CIFS implementation. Tests for SamDB
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
2010-11-28 04:02:28 +01:00
#
2008-02-13 02:18:45 +01:00
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
2010-11-28 04:02:28 +01:00
#
2008-02-13 02:18:45 +01:00
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
2010-11-28 04:02:28 +01:00
#
2008-02-13 02:18:45 +01:00
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
2010-12-05 16:56:27 +01:00
""" Tests for samba.samdb. """
2010-06-13 15:05:50 +02:00
import logging
2008-02-13 02:18:45 +01:00
import os
2017-12-06 14:31:54 +13:00
import shutil
2010-06-14 02:15:32 +02:00
from samba . auth import system_session
2017-12-06 14:31:54 +13:00
from samba . provision import provision
2009-02-12 15:58:11 +01:00
from samba . tests import TestCaseInTempDir
2017-12-06 14:31:54 +13:00
from samba . dsdb import DS_DOMAIN_FUNCTION_2008_R2
2008-02-13 02:18:45 +01:00
2009-02-12 16:00:11 +01:00
2008-02-13 02:18:45 +01:00
class SamDBTestCase ( TestCaseInTempDir ) :
2009-02-12 16:00:11 +01:00
""" Base-class for tests with a Sam Database.
2010-11-28 04:02:28 +01:00
2009-02-12 16:00:11 +01:00
This is used by the Samba SamDB - tests , but e . g . also by the OpenChange
provisioning tests ( which need a Sam ) .
"""
2009-02-11 17:54:58 +01:00
2008-02-13 02:18:45 +01:00
def setUp ( self ) :
super ( SamDBTestCase , self ) . setUp ( )
2017-12-06 14:31:54 +13:00
self . session = system_session ( )
logger = logging . getLogger ( " selftest " )
domain = " dsdb "
realm = " dsdb.samba.example.com "
host_name = " test "
server_role = " active directory domain controller "
self . result = provision ( logger ,
self . session , targetdir = self . tempdir ,
realm = realm , domain = domain ,
hostname = host_name ,
use_ntvfs = True ,
serverrole = server_role ,
dns_backend = " SAMBA_INTERNAL " ,
dom_for_fun_level = DS_DOMAIN_FUNCTION_2008_R2 )
self . samdb = self . result . samdb
self . lp = self . result . lp
2008-05-30 14:26:47 +10:00
2008-05-29 17:31:16 +02:00
def tearDown ( self ) :
2017-12-06 14:31:54 +13:00
for f in [ ' names.tdb ' ] :
2008-05-29 17:31:16 +02:00
os . remove ( os . path . join ( self . tempdir , f ) )
2017-12-06 14:31:54 +13:00
2018-06-25 14:00:59 +12:00
for d in [ ' etc ' , ' msg.lock ' , ' private ' , ' state ' , ' bind-dns ' ] :
2017-12-06 14:31:54 +13:00
shutil . rmtree ( os . path . join ( self . tempdir , d ) )
2008-05-29 17:31:16 +02:00
super ( SamDBTestCase , self ) . tearDown ( )