2010-06-24 08:33:58 +04:00
#!/usr/bin/env python
2007-12-18 20:54:19 +03:00
# Unix SMB/CIFS implementation.
2008-01-25 03:37:47 +03:00
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007-2008
2011-09-13 03:10:37 +04:00
#
2007-12-18 20:54:19 +03: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.
2011-09-13 03:10:37 +04:00
#
2007-12-18 20:54:19 +03: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.
2011-09-13 03:10:37 +04:00
#
2007-12-18 20:54:19 +03: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 18:56:27 +03:00
""" Tests for samba.provision. """
2007-12-20 01:27:31 +03:00
import os
2011-02-05 02:34:51 +03:00
from samba . provision import setup_secretsdb , findnss , ProvisionPaths
2007-12-20 01:27:31 +03:00
import samba . tests
2010-06-19 20:58:18 +04:00
from samba . tests import env_loadparm , TestCase
2008-01-26 04:55:03 +03:00
2010-05-07 04:22:36 +04:00
def create_dummy_secretsdb ( path , lp = None ) :
""" Create a dummy secrets database for use in tests.
: param path : Path to store the secrets db
: param lp : Optional loadparm context . A simple one will
be generated if not specified .
"""
if lp is None :
lp = env_loadparm ( )
2010-09-30 23:45:00 +04:00
paths = ProvisionPaths ( )
paths . secrets = path
paths . private_dir = os . path . dirname ( path )
paths . keytab = " no.keytab "
paths . dns_keytab = " no.dns.keytab "
2011-02-05 02:34:51 +03:00
secrets_ldb = setup_secretsdb ( paths , None , None , lp = lp )
2010-05-07 04:22:36 +04:00
secrets_ldb . transaction_commit ( )
return secrets_ldb
2010-06-20 03:56:52 +04:00
2007-12-20 01:27:31 +03:00
class ProvisionTestCase ( samba . tests . TestCaseInTempDir ) :
2008-02-09 19:42:31 +03:00
""" Some simple tests for individual functions in the provisioning code.
"""
2010-06-20 03:56:52 +04:00
2007-12-18 20:54:19 +03:00
def test_setup_secretsdb ( self ) :
2007-12-26 01:36:44 +03:00
path = os . path . join ( self . tempdir , " secrets.ldb " )
2010-09-30 23:45:00 +04:00
paths = ProvisionPaths ( )
paths . secrets = path
paths . private_dir = os . path . dirname ( path )
paths . keytab = " no.keytab "
paths . dns_keytab = " no.dns.keytab "
2011-02-05 02:34:51 +03:00
ldb = setup_secretsdb ( paths , None , None , lp = env_loadparm ( ) )
2007-12-26 01:36:44 +03:00
try :
self . assertEquals ( " LSA Secrets " ,
2008-01-25 05:54:33 +03:00
ldb . searchone ( basedn = " CN=LSA Secrets " , attribute = " CN " ) )
2007-12-26 01:36:44 +03:00
finally :
del ldb
os . unlink ( path )
2008-01-25 03:37:47 +03:00
2008-02-09 04:10:49 +03:00
2010-06-19 20:58:18 +04:00
class FindNssTests ( TestCase ) :
2008-02-09 04:10:49 +03:00
""" Test findnss() function. """
2010-06-19 20:58:18 +04:00
2008-02-09 04:10:49 +03:00
def test_nothing ( self ) :
def x ( y ) :
raise KeyError
self . assertRaises ( KeyError , findnss , x , [ ] )
def test_first ( self ) :
self . assertEquals ( " bla " , findnss ( lambda x : " bla " , [ " bla " ] ) )
def test_skip_first ( self ) :
def x ( y ) :
if y != " bla " :
raise KeyError
return " ha "
self . assertEquals ( " ha " , findnss ( x , [ " bloe " , " bla " ] ) )
2008-08-01 23:00:09 +04:00
class Disabled ( object ) :
2010-03-01 07:04:23 +03:00
2007-12-18 20:54:19 +03:00
def test_setup_templatesdb ( self ) :
raise NotImplementedError ( self . test_setup_templatesdb )
def test_setup_registry ( self ) :
raise NotImplementedError ( self . test_setup_registry )
def test_setup_samdb_rootdse ( self ) :
raise NotImplementedError ( self . test_setup_samdb_rootdse )
def test_setup_samdb_partitions ( self ) :
raise NotImplementedError ( self . test_setup_samdb_partitions )
def test_create_phpldapadmin_config ( self ) :
raise NotImplementedError ( self . test_create_phpldapadmin_config )
def test_provision_dns ( self ) :
raise NotImplementedError ( self . test_provision_dns )
def test_provision_ldapbase ( self ) :
raise NotImplementedError ( self . test_provision_ldapbase )
def test_provision_guess ( self ) :
raise NotImplementedError ( self . test_provision_guess )
def test_join_domain ( self ) :
raise NotImplementedError ( self . test_join_domain )
def test_vampire ( self ) :
raise NotImplementedError ( self . test_vampire )
2008-02-09 04:10:49 +03:00