3
# Unix SMB/CIFS implementation.
4
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007-2008
6
# This program is free software; you can redistribute it and/or modify
7
# it under the terms of the GNU General Public License as published by
8
# the Free Software Foundation; either version 3 of the License, or
9
# (at your option) any later version.
11
# This program is distributed in the hope that it will be useful,
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
# GNU General Public License for more details.
16
# You should have received a copy of the GNU General Public License
17
# along with this program. If not, see <http://www.gnu.org/licenses/>.
20
"""Samba Python tests."""
28
class LdbTestCase(unittest.TestCase):
29
"""Trivial test case for running tests against a LDB."""
31
self.filename = os.tempnam()
32
self.ldb = samba.Ldb(self.filename)
34
def set_modules(self, modules=[]):
35
"""Change the modules for this Ldb."""
37
m.dn = ldb.Dn(self.ldb, "@MODULES")
38
m["@LIST"] = ",".join(modules)
40
self.ldb = samba.Ldb(self.filename)
43
class TestCaseInTempDir(unittest.TestCase):
45
super(TestCaseInTempDir, self).setUp()
46
self.tempdir = tempfile.mkdtemp()
49
super(TestCaseInTempDir, self).tearDown()
50
self.assertEquals([], os.listdir(self.tempdir))
51
os.rmdir(self.tempdir)
54
class SubstituteVarTestCase(unittest.TestCase):
56
self.assertEquals("", samba.substitute_var("", {}))
58
def test_nothing(self):
59
self.assertEquals("foo bar", samba.substitute_var("foo bar", {"bar": "bla"}))
61
def test_replace(self):
62
self.assertEquals("foo bla", samba.substitute_var("foo ${bar}", {"bar": "bla"}))
64
def test_broken(self):
65
self.assertEquals("foo ${bdkjfhsdkfh sdkfh ",
66
samba.substitute_var("foo ${bdkjfhsdkfh sdkfh ", {"bar": "bla"}))
68
def test_unknown_var(self):
69
self.assertEquals("foo ${bla} gsff",
70
samba.substitute_var("foo ${bla} gsff", {"bar": "bla"}))
72
def test_check_all_substituted(self):
73
samba.check_all_substituted("nothing to see here")
74
self.assertRaises(Exception, samba.check_all_substituted, "Not subsituted: ${FOOBAR}")
77
class LdbExtensionTests(TestCaseInTempDir):
78
def test_searchone(self):
79
path = self.tempdir + "/searchone.ldb"
82
l.add({"dn": "foo=dc", "bar": "bla"})
83
self.assertEquals("bla", l.searchone(basedn=ldb.Dn(l, "foo=dc"), attribute="bar"))
89
cmdline_loadparm = None
90
cmdline_credentials = None
92
class RpcInterfaceTestCase(unittest.TestCase):
93
def get_loadparm(self):
94
assert cmdline_loadparm is not None
95
return cmdline_loadparm
97
def get_credentials(self):
98
return cmdline_credentials