mirror of
https://github.com/samba-team/samba.git
synced 2025-07-23 20:59:10 +03:00
s4-selftest: Move more tests to scripting/python, simplifies running of tests.
This commit is contained in:
33
source4/scripting/python/samba/tests/auth.py
Normal file
33
source4/scripting/python/samba/tests/auth.py
Normal file
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env 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/>.
|
||||
#
|
||||
|
||||
"""Tests for the Auth Python bindings.
|
||||
|
||||
Note that this just tests the bindings work. It does not intend to test
|
||||
the functionality, that's already done in other tests.
|
||||
"""
|
||||
|
||||
from samba import auth
|
||||
import samba.tests
|
||||
|
||||
class AuthTests(samba.tests.TestCase):
|
||||
|
||||
def test_system_session(self):
|
||||
auth.system_session()
|
||||
|
@ -3,12 +3,12 @@
|
||||
|
||||
# Unix SMB/CIFS implementation.
|
||||
# Copyright © Jelmer Vernooij <jelmer@samba.org> 2008
|
||||
#
|
||||
#
|
||||
# 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
|
||||
|
@ -43,8 +43,8 @@ class GUIDTests(samba.tests.TestCase):
|
||||
guid2 = misc.GUID(text1)
|
||||
self.assertEquals(0, cmp(guid1, guid2))
|
||||
self.assertEquals(guid1, guid2)
|
||||
|
||||
|
||||
|
||||
|
||||
class PolicyHandleTests(samba.tests.TestCase):
|
||||
|
||||
def test_init(self):
|
||||
|
39
source4/scripting/python/samba/tests/gensec.py
Normal file
39
source4/scripting/python/samba/tests/gensec.py
Normal file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Unix SMB/CIFS implementation.
|
||||
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2009
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
"""Tests for GENSEC.
|
||||
|
||||
Note that this just tests the bindings work. It does not intend to test
|
||||
the functionality, that's already done in other tests.
|
||||
"""
|
||||
|
||||
from samba import gensec
|
||||
import samba.tests
|
||||
|
||||
class CredentialsTests(samba.tests.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(CredentialsTests, self).setUp()
|
||||
settings = {}
|
||||
settings["target_hostname"] = "localhost"
|
||||
settings["lp_ctx"] = samba.tests.env_loadparm()
|
||||
self.gensec = gensec.Security.start_client(settings)
|
||||
|
||||
def test_info(self):
|
||||
self.assertEquals(None, self.gensec.session_info())
|
58
source4/scripting/python/samba/tests/messaging.py
Normal file
58
source4/scripting/python/samba/tests/messaging.py
Normal file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Unix SMB/CIFS implementation.
|
||||
# Copyright © Jelmer Vernooij <jelmer@samba.org> 2008
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
|
||||
from samba.messaging import Messaging
|
||||
from samba.tests import TestCase
|
||||
|
||||
class MessagingTests(TestCase):
|
||||
|
||||
def get_context(self, *args, **kwargs):
|
||||
kwargs["messaging_path"] = "."
|
||||
return Messaging(*args, **kwargs)
|
||||
|
||||
def test_register(self):
|
||||
x = self.get_context()
|
||||
def callback():
|
||||
pass
|
||||
msg_type = x.register(callback)
|
||||
x.deregister(callback, msg_type)
|
||||
|
||||
def test_assign_server_id(self):
|
||||
x = self.get_context()
|
||||
self.assertTrue(isinstance(x.server_id, tuple))
|
||||
self.assertEquals(3, len(x.server_id))
|
||||
|
||||
def test_ping_speed(self):
|
||||
server_ctx = self.get_context((0, 1))
|
||||
def ping_callback(src, data):
|
||||
server_ctx.send(src, data)
|
||||
def exit_callback():
|
||||
print "received exit"
|
||||
msg_ping = server_ctx.register(ping_callback)
|
||||
msg_exit = server_ctx.register(exit_callback)
|
||||
|
||||
def pong_callback():
|
||||
print "received pong"
|
||||
client_ctx = self.get_context((0, 2))
|
||||
msg_pong = client_ctx.register(pong_callback)
|
||||
|
||||
client_ctx.send((0, 1), msg_ping, "testing")
|
||||
client_ctx.send((0, 1), msg_ping, "")
|
||||
|
57
source4/scripting/python/samba/tests/param.py
Normal file
57
source4/scripting/python/samba/tests/param.py
Normal file
@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env 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/>.
|
||||
#
|
||||
|
||||
from samba import param
|
||||
import samba.tests
|
||||
|
||||
class LoadParmTestCase(samba.tests.TestCase):
|
||||
|
||||
def test_init(self):
|
||||
file = param.LoadParm()
|
||||
self.assertTrue(file is not None)
|
||||
|
||||
def test_length(self):
|
||||
file = param.LoadParm()
|
||||
self.assertEquals(0, len(file))
|
||||
|
||||
def test_set_workgroup(self):
|
||||
file = param.LoadParm()
|
||||
file.set("workgroup", "bla")
|
||||
self.assertEquals("BLA", file.get("workgroup"))
|
||||
|
||||
def test_is_mydomain(self):
|
||||
file = param.LoadParm()
|
||||
file.set("workgroup", "bla")
|
||||
self.assertTrue(file.is_mydomain("BLA"))
|
||||
self.assertFalse(file.is_mydomain("FOOBAR"))
|
||||
|
||||
def test_is_myname(self):
|
||||
file = param.LoadParm()
|
||||
file.set("netbios name", "bla")
|
||||
self.assertTrue(file.is_myname("BLA"))
|
||||
self.assertFalse(file.is_myname("FOOBAR"))
|
||||
|
||||
def test_load_default(self):
|
||||
file = param.LoadParm()
|
||||
file.load_default()
|
||||
|
||||
def test_section_nonexistant(self):
|
||||
samba_lp = param.LoadParm()
|
||||
samba_lp.load_default()
|
||||
self.assertRaises(KeyError, samba_lp.__getitem__, "nonexistant")
|
60
source4/scripting/python/samba/tests/registry.py
Normal file
60
source4/scripting/python/samba/tests/registry.py
Normal file
@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env 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
|
||||
from samba import registry
|
||||
import samba.tests
|
||||
|
||||
class HelperTests(samba.tests.TestCase):
|
||||
|
||||
def test_predef_to_name(self):
|
||||
self.assertEquals("HKEY_LOCAL_MACHINE",
|
||||
registry.get_predef_name(0x80000002))
|
||||
|
||||
def test_str_regtype(self):
|
||||
self.assertEquals("REG_DWORD", registry.str_regtype(4))
|
||||
|
||||
|
||||
|
||||
class HiveTests(samba.tests.TestCaseInTempDir):
|
||||
|
||||
def setUp(self):
|
||||
super(HiveTests, self).setUp()
|
||||
self.hive_path = os.path.join(self.tempdir, "ldb_new.ldb")
|
||||
self.hive = registry.open_ldb(self.hive_path)
|
||||
|
||||
def tearDown(self):
|
||||
del self.hive
|
||||
os.unlink(self.hive_path)
|
||||
super(HiveTests, self).tearDown()
|
||||
|
||||
def test_ldb_new(self):
|
||||
self.assertTrue(self.hive is not None)
|
||||
|
||||
#def test_flush(self):
|
||||
# self.hive.flush()
|
||||
|
||||
#def test_del_value(self):
|
||||
# self.hive.del_value("FOO")
|
||||
|
||||
|
||||
class RegistryTests(samba.tests.TestCase):
|
||||
|
||||
def test_new(self):
|
||||
self.registry = registry.Registry()
|
143
source4/scripting/python/samba/tests/security.py
Normal file
143
source4/scripting/python/samba/tests/security.py
Normal file
@ -0,0 +1,143 @@
|
||||
#!/usr/bin/env 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 samba.tests
|
||||
from samba.dcerpc import security
|
||||
|
||||
class SecurityTokenTests(samba.tests.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(SecurityTokenTests, self).setUp()
|
||||
self.token = security.token()
|
||||
|
||||
def test_is_system(self):
|
||||
self.assertFalse(self.token.is_system())
|
||||
|
||||
def test_is_anonymous(self):
|
||||
self.assertFalse(self.token.is_anonymous())
|
||||
|
||||
def test_has_builtin_administrators(self):
|
||||
self.assertFalse(self.token.has_builtin_administrators())
|
||||
|
||||
def test_has_nt_authenticated_users(self):
|
||||
self.assertFalse(self.token.has_nt_authenticated_users())
|
||||
|
||||
def test_has_priv(self):
|
||||
self.assertFalse(self.token.has_privilege(security.SEC_PRIV_SHUTDOWN))
|
||||
|
||||
def test_set_priv(self):
|
||||
self.assertFalse(self.token.has_privilege(security.SEC_PRIV_SHUTDOWN))
|
||||
self.assertFalse(self.token.set_privilege(security.SEC_PRIV_SHUTDOWN))
|
||||
self.assertTrue(self.token.has_privilege(security.SEC_PRIV_SHUTDOWN))
|
||||
|
||||
|
||||
class SecurityDescriptorTests(samba.tests.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(SecurityDescriptorTests, self).setUp()
|
||||
self.descriptor = security.descriptor()
|
||||
|
||||
def test_from_sddl(self):
|
||||
desc = security.descriptor.from_sddl("O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)", security.dom_sid("S-2-0-0"))
|
||||
self.assertEquals(desc.group_sid, security.dom_sid('S-2-0-0-512'))
|
||||
self.assertEquals(desc.owner_sid, security.dom_sid('S-1-5-32-548'))
|
||||
self.assertEquals(desc.revision, 1)
|
||||
self.assertEquals(desc.sacl, None)
|
||||
self.assertEquals(desc.type, 0x8004)
|
||||
|
||||
def test_from_sddl_invalidsddl(self):
|
||||
self.assertRaises(TypeError,security.descriptor.from_sddl, "foo",security.dom_sid("S-2-0-0"))
|
||||
|
||||
def test_from_sddl_invalidtype1(self):
|
||||
self.assertRaises(TypeError, security.descriptor.from_sddl, security.dom_sid('S-2-0-0-512'),security.dom_sid("S-2-0-0"))
|
||||
|
||||
def test_from_sddl_invalidtype2(self):
|
||||
sddl = "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"
|
||||
self.assertRaises(TypeError, security.descriptor.from_sddl, sddl,
|
||||
"S-2-0-0")
|
||||
|
||||
def test_as_sddl(self):
|
||||
text = "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"
|
||||
dom = security.dom_sid("S-2-0-0")
|
||||
desc1 = security.descriptor.from_sddl(text, dom)
|
||||
desc2 = security.descriptor.from_sddl(desc1.as_sddl(dom), dom)
|
||||
self.assertEquals(desc1.group_sid, desc2.group_sid)
|
||||
self.assertEquals(desc1.owner_sid, desc2.owner_sid)
|
||||
self.assertEquals(desc1.sacl, desc2.sacl)
|
||||
self.assertEquals(desc1.type, desc2.type)
|
||||
|
||||
def test_as_sddl_invalid(self):
|
||||
text = "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"
|
||||
dom = security.dom_sid("S-2-0-0")
|
||||
desc1 = security.descriptor.from_sddl(text, dom)
|
||||
self.assertRaises(TypeError, desc1.as_sddl,text)
|
||||
|
||||
|
||||
def test_as_sddl_no_domainsid(self):
|
||||
dom = security.dom_sid("S-2-0-0")
|
||||
text = "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"
|
||||
desc1 = security.descriptor.from_sddl(text, dom)
|
||||
desc2 = security.descriptor.from_sddl(desc1.as_sddl(), dom)
|
||||
self.assertEquals(desc1.group_sid, desc2.group_sid)
|
||||
self.assertEquals(desc1.owner_sid, desc2.owner_sid)
|
||||
self.assertEquals(desc1.sacl, desc2.sacl)
|
||||
self.assertEquals(desc1.type, desc2.type)
|
||||
|
||||
def test_domsid_nodomsid_as_sddl(self):
|
||||
dom = security.dom_sid("S-2-0-0")
|
||||
text = "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"
|
||||
desc1 = security.descriptor.from_sddl(text, dom)
|
||||
self.assertNotEqual(desc1.as_sddl(), desc1.as_sddl(dom))
|
||||
|
||||
def test_split(self):
|
||||
dom = security.dom_sid("S-2-0-7")
|
||||
self.assertEquals((security.dom_sid("S-2-0"), 7), dom.split())
|
||||
|
||||
|
||||
class DomSidTests(samba.tests.TestCase):
|
||||
|
||||
def test_parse_sid(self):
|
||||
sid = security.dom_sid("S-1-5-21")
|
||||
self.assertEquals("S-1-5-21", str(sid))
|
||||
|
||||
def test_sid_equal(self):
|
||||
sid1 = security.dom_sid("S-1-5-21")
|
||||
sid2 = security.dom_sid("S-1-5-21")
|
||||
self.assertEquals(sid1, sid1)
|
||||
self.assertEquals(sid1, sid2)
|
||||
|
||||
def test_random(self):
|
||||
sid = security.random_sid()
|
||||
self.assertTrue(str(sid).startswith("S-1-5-21-"))
|
||||
|
||||
def test_repr(self):
|
||||
sid = security.random_sid()
|
||||
self.assertTrue(repr(sid).startswith("dom_sid('S-1-5-21-"))
|
||||
|
||||
|
||||
class PrivilegeTests(samba.tests.TestCase):
|
||||
|
||||
def test_privilege_name(self):
|
||||
self.assertEquals("SeShutdownPrivilege",
|
||||
security.privilege_name(security.SEC_PRIV_SHUTDOWN))
|
||||
|
||||
def test_privilege_id(self):
|
||||
self.assertEquals(security.SEC_PRIV_SHUTDOWN,
|
||||
security.privilege_id("SeShutdownPrivilege"))
|
||||
|
Reference in New Issue
Block a user