2007-12-17 05:25:28 +03:00
#!/usr/bin/python
# Unix SMB/CIFS implementation.
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
#
# 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.
#
# 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.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import os
import ldb
import samba
2007-12-20 01:27:31 +03:00
import tempfile
2007-12-17 05:25:28 +03:00
import unittest
class LdbTestCase ( unittest . TestCase ) :
def setUp ( self ) :
self . filename = os . tempnam ( )
self . ldb = samba . Ldb ( self . filename )
2007-12-17 13:12:36 +03:00
def set_modules ( self , modules = [ ] ) :
2007-12-17 05:25:28 +03:00
m = ldb . Message ( )
m . dn = ldb . Dn ( self . ldb , " @MODULES " )
m [ " @LIST " ] = " , " . join ( modules )
self . ldb . add ( m )
self . ldb = samba . Ldb ( self . filename )
2007-12-20 01:27:31 +03:00
class TestCaseInTempDir ( unittest . TestCase ) :
def setUp ( self ) :
super ( TestCaseInTempDir , self ) . setUp ( )
self . tempdir = tempfile . mkdtemp ( )
def tearDown ( self ) :
super ( TestCaseInTempDir , self ) . tearDown ( )
2007-12-24 04:19:41 +03:00
# FIXME: Remove all files in self.tempdir
2007-12-20 01:27:31 +03:00
2007-12-18 20:54:19 +03:00
class SubstituteVarTestCase ( unittest . TestCase ) :
def test_empty ( self ) :
self . assertEquals ( " " , samba . substitute_var ( " " , { } ) )
def test_nothing ( self ) :
self . assertEquals ( " foo bar " , samba . substitute_var ( " foo bar " , { " bar " : " bla " } ) )
def test_replace ( self ) :
self . assertEquals ( " foo bla " , samba . substitute_var ( " foo $ {bar} " , { " bar " : " bla " } ) )
def test_broken ( self ) :
self . assertEquals ( " foo $ { bdkjfhsdkfh sdkfh " ,
samba . substitute_var ( " foo $ { bdkjfhsdkfh sdkfh " , { " bar " : " bla " } ) )
def test_unknown_var ( self ) :
self . assertEquals ( " foo $ {bla} gsff " ,
samba . substitute_var ( " foo $ {bla} gsff " , { " bar " : " bla " } ) )
2007-12-20 01:27:31 +03:00
class LdbExtensionTests ( TestCaseInTempDir ) :
def test_searchone ( self ) :
l = samba . Ldb ( self . tempdir + " /searchone.ldb " )
2007-12-20 01:27:38 +03:00
l . add ( { " dn " : " foo=dc " , " bar " : " bla " } )
2007-12-20 01:27:31 +03:00
self . assertEquals ( " bla " , l . searchone ( ldb . Dn ( l , " foo=dc " ) , " bar " ) )