From ffd48a79ee34dc90c0f6f16564c3a0de8b53d3d2 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 4 Sep 2009 18:07:04 +1000 Subject: s4:python fixed subunit tests of dcerpc The version of the unitest python module in Ubuntu Jaunty doesn't seem to support this many level of subdirectories. Moving the tests up one level solves the problem. --- source4/scripting/python/samba/tests/bare.py | 48 +++++++++++++++ .../scripting/python/samba/tests/dcerpc/bare.py | 48 --------------- .../scripting/python/samba/tests/dcerpc/misc.py | 64 -------------------- .../python/samba/tests/dcerpc/registry.py | 50 ---------------- .../scripting/python/samba/tests/dcerpc/rpcecho.py | 69 ---------------------- source4/scripting/python/samba/tests/dcerpc/sam.py | 46 --------------- .../scripting/python/samba/tests/dcerpc/unix.py | 37 ------------ source4/scripting/python/samba/tests/misc.py | 64 ++++++++++++++++++++ source4/scripting/python/samba/tests/registry.py | 50 ++++++++++++++++ source4/scripting/python/samba/tests/rpcecho.py | 69 ++++++++++++++++++++++ source4/scripting/python/samba/tests/sam.py | 46 +++++++++++++++ source4/scripting/python/samba/tests/unix.py | 37 ++++++++++++ source4/selftest/tests.sh | 12 ++-- 13 files changed, 320 insertions(+), 320 deletions(-) create mode 100644 source4/scripting/python/samba/tests/bare.py delete mode 100644 source4/scripting/python/samba/tests/dcerpc/bare.py delete mode 100644 source4/scripting/python/samba/tests/dcerpc/misc.py delete mode 100644 source4/scripting/python/samba/tests/dcerpc/registry.py delete mode 100644 source4/scripting/python/samba/tests/dcerpc/rpcecho.py delete mode 100644 source4/scripting/python/samba/tests/dcerpc/sam.py delete mode 100644 source4/scripting/python/samba/tests/dcerpc/unix.py create mode 100644 source4/scripting/python/samba/tests/misc.py create mode 100644 source4/scripting/python/samba/tests/registry.py create mode 100644 source4/scripting/python/samba/tests/rpcecho.py create mode 100644 source4/scripting/python/samba/tests/sam.py create mode 100644 source4/scripting/python/samba/tests/unix.py (limited to 'source4') diff --git a/source4/scripting/python/samba/tests/bare.py b/source4/scripting/python/samba/tests/bare.py new file mode 100644 index 0000000000..cd939b8098 --- /dev/null +++ b/source4/scripting/python/samba/tests/bare.py @@ -0,0 +1,48 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Unix SMB/CIFS implementation. +# Copyright © Jelmer Vernooij 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 . +# + +from samba.dcerpc import ClientConnection +from unittest import TestCase +from samba.tests import cmdline_loadparm + + +class BareTestCase(TestCase): + def test_bare(self): + # Connect to the echo pipe + x = ClientConnection("ncalrpc:localhost[DEFAULT]", + ("60a15ec5-4de8-11d7-a637-005056a20182", 1), lp_ctx=cmdline_loadparm) + self.assertEquals("\x01\x00\x00\x00", x.request(0, chr(0) * 4)) + + def test_alter_context(self): + x = ClientConnection("ncalrpc:localhost[DEFAULT]", + ("12345778-1234-abcd-ef00-0123456789ac", 1), lp_ctx=cmdline_loadparm) + y = ClientConnection("ncalrpc:localhost", + ("60a15ec5-4de8-11d7-a637-005056a20182", 1), + basis_connection=x, lp_ctx=cmdline_loadparm) + x.alter_context(("60a15ec5-4de8-11d7-a637-005056a20182", 1)) + # FIXME: self.assertEquals("\x01\x00\x00\x00", x.request(0, chr(0) * 4)) + + def test_two_connections(self): + x = ClientConnection("ncalrpc:localhost[DEFAULT]", + ("60a15ec5-4de8-11d7-a637-005056a20182", 1), lp_ctx=cmdline_loadparm) + y = ClientConnection("ncalrpc:localhost", + ("60a15ec5-4de8-11d7-a637-005056a20182", 1), + basis_connection=x, lp_ctx=cmdline_loadparm) + self.assertEquals("\x01\x00\x00\x00", y.request(0, chr(0) * 4)) diff --git a/source4/scripting/python/samba/tests/dcerpc/bare.py b/source4/scripting/python/samba/tests/dcerpc/bare.py deleted file mode 100644 index cd939b8098..0000000000 --- a/source4/scripting/python/samba/tests/dcerpc/bare.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Unix SMB/CIFS implementation. -# Copyright © Jelmer Vernooij 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 . -# - -from samba.dcerpc import ClientConnection -from unittest import TestCase -from samba.tests import cmdline_loadparm - - -class BareTestCase(TestCase): - def test_bare(self): - # Connect to the echo pipe - x = ClientConnection("ncalrpc:localhost[DEFAULT]", - ("60a15ec5-4de8-11d7-a637-005056a20182", 1), lp_ctx=cmdline_loadparm) - self.assertEquals("\x01\x00\x00\x00", x.request(0, chr(0) * 4)) - - def test_alter_context(self): - x = ClientConnection("ncalrpc:localhost[DEFAULT]", - ("12345778-1234-abcd-ef00-0123456789ac", 1), lp_ctx=cmdline_loadparm) - y = ClientConnection("ncalrpc:localhost", - ("60a15ec5-4de8-11d7-a637-005056a20182", 1), - basis_connection=x, lp_ctx=cmdline_loadparm) - x.alter_context(("60a15ec5-4de8-11d7-a637-005056a20182", 1)) - # FIXME: self.assertEquals("\x01\x00\x00\x00", x.request(0, chr(0) * 4)) - - def test_two_connections(self): - x = ClientConnection("ncalrpc:localhost[DEFAULT]", - ("60a15ec5-4de8-11d7-a637-005056a20182", 1), lp_ctx=cmdline_loadparm) - y = ClientConnection("ncalrpc:localhost", - ("60a15ec5-4de8-11d7-a637-005056a20182", 1), - basis_connection=x, lp_ctx=cmdline_loadparm) - self.assertEquals("\x01\x00\x00\x00", y.request(0, chr(0) * 4)) diff --git a/source4/scripting/python/samba/tests/dcerpc/misc.py b/source4/scripting/python/samba/tests/dcerpc/misc.py deleted file mode 100644 index e9b5127a5a..0000000000 --- a/source4/scripting/python/samba/tests/dcerpc/misc.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/python - -# Unix SMB/CIFS implementation. -# Copyright (C) Jelmer Vernooij 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 . -# - -import unittest -from samba.dcerpc import misc - -text1 = "76f53846-a7c2-476a-ae2c-20e2b80d7b34" -text2 = "344edffa-330a-4b39-b96e-2c34da52e8b1" - -class GUIDTests(unittest.TestCase): - - def test_str(self): - guid = misc.GUID(text1) - self.assertEquals(text1, str(guid)) - - def test_repr(self): - guid = misc.GUID(text1) - self.assertEquals("GUID('%s')" % text1, repr(guid)) - - def test_compare_different(self): - guid1 = misc.GUID(text1) - guid2 = misc.GUID(text2) - self.assertTrue(cmp(guid1, guid2) > 0) - - def test_compare_same(self): - guid1 = misc.GUID(text1) - guid2 = misc.GUID(text1) - self.assertEquals(0, cmp(guid1, guid2)) - self.assertEquals(guid1, guid2) - - - - -class PolicyHandleTests(unittest.TestCase): - - def test_init(self): - x = misc.policy_handle(text1, 1) - self.assertEquals(1, x.handle_type) - self.assertEquals(text1, str(x.uuid)) - - def test_repr(self): - x = misc.policy_handle(text1, 42) - self.assertEquals("policy_handle(%d, '%s')" % (42, text1), repr(x)) - - def test_str(self): - x = misc.policy_handle(text1, 42) - self.assertEquals("%d, %s" % (42, text1), str(x)) - diff --git a/source4/scripting/python/samba/tests/dcerpc/registry.py b/source4/scripting/python/samba/tests/dcerpc/registry.py deleted file mode 100644 index 526b2340cc..0000000000 --- a/source4/scripting/python/samba/tests/dcerpc/registry.py +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/python - -# Unix SMB/CIFS implementation. -# Copyright (C) Jelmer Vernooij 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 . -# - -from samba.dcerpc import winreg -import unittest -from samba.tests import RpcInterfaceTestCase - - -class WinregTests(RpcInterfaceTestCase): - def setUp(self): - self.conn = winreg.winreg("ncalrpc:", self.get_loadparm(), - self.get_credentials()) - - def get_hklm(self): - return self.conn.OpenHKLM(None, - winreg.KEY_QUERY_VALUE | winreg.KEY_ENUMERATE_SUB_KEYS) - - def test_hklm(self): - handle = self.conn.OpenHKLM(None, - winreg.KEY_QUERY_VALUE | winreg.KEY_ENUMERATE_SUB_KEYS) - self.conn.CloseKey(handle) - - def test_getversion(self): - handle = self.get_hklm() - version = self.conn.GetVersion(handle) - self.assertEquals(int, version.__class__) - self.conn.CloseKey(handle) - - def test_getkeyinfo(self): - handle = self.conn.OpenHKLM(None, - winreg.KEY_QUERY_VALUE | winreg.KEY_ENUMERATE_SUB_KEYS) - x = self.conn.QueryInfoKey(handle, winreg.String()) - self.assertEquals(9, len(x)) # should return a 9-tuple - self.conn.CloseKey(handle) diff --git a/source4/scripting/python/samba/tests/dcerpc/rpcecho.py b/source4/scripting/python/samba/tests/dcerpc/rpcecho.py deleted file mode 100644 index 12638e2397..0000000000 --- a/source4/scripting/python/samba/tests/dcerpc/rpcecho.py +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/python - -# Unix SMB/CIFS implementation. -# Copyright (C) Jelmer Vernooij 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 . -# - -from samba.dcerpc import echo -from samba.ndr import ndr_pack, ndr_unpack -import unittest -from samba.tests import RpcInterfaceTestCase - - -class RpcEchoTests(RpcInterfaceTestCase): - def setUp(self): - self.conn = echo.rpcecho("ncalrpc:", self.get_loadparm()) - - def test_two_contexts(self): - self.conn2 = echo.rpcecho("ncalrpc:", self.get_loadparm(), basis_connection=self.conn) - self.assertEquals(3, self.conn2.AddOne(2)) - - def test_abstract_syntax(self): - self.assertEquals(("60a15ec5-4de8-11d7-a637-005056a20182", 1), - self.conn.abstract_syntax) - - def test_addone(self): - self.assertEquals(2, self.conn.AddOne(1)) - - def test_echodata(self): - self.assertEquals([1,2,3], self.conn.EchoData([1, 2, 3])) - - def test_call(self): - self.assertEquals(u"foobar", self.conn.TestCall(u"foobar")) - - def test_surrounding(self): - surrounding_struct = echo.Surrounding() - surrounding_struct.x = 4 - surrounding_struct.surrounding = [1,2,3,4] - y = self.conn.TestSurrounding(surrounding_struct) - self.assertEquals(8 * [0], y.surrounding) - - def test_manual_request(self): - self.assertEquals("\x01\x00\x00\x00", self.conn.request(0, chr(0) * 4)) - - def test_server_name(self): - self.assertEquals(None, self.conn.server_name) - - -class NdrEchoTests(unittest.TestCase): - def test_info1_push(self): - x = echo.info1() - x.v = 42 - self.assertEquals("\x2a", ndr_pack(x)) - - def test_info1_pull(self): - x = ndr_unpack(echo.info1, "\x42") - self.assertEquals(x.v, 66) diff --git a/source4/scripting/python/samba/tests/dcerpc/sam.py b/source4/scripting/python/samba/tests/dcerpc/sam.py deleted file mode 100644 index 50e00a3f9e..0000000000 --- a/source4/scripting/python/samba/tests/dcerpc/sam.py +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Unix SMB/CIFS implementation. -# Copyright © Jelmer Vernooij 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 . -# - -from samba.dcerpc import samr, security -from samba.tests import RpcInterfaceTestCase - -# FIXME: Pidl should be doing this for us -def toArray((handle, array, num_entries)): - ret = [] - for x in range(num_entries): - ret.append((array.entries[x].idx, array.entries[x].name)) - return ret - - -class SamrTests(RpcInterfaceTestCase): - def setUp(self): - self.conn = samr.samr("ncalrpc:", self.get_loadparm()) - - def test_connect5(self): - (level, info, handle) = self.conn.Connect5(None, 0, 1, samr.ConnectInfo1()) - - def test_connect2(self): - handle = self.conn.Connect2(None, security.SEC_FLAG_MAXIMUM_ALLOWED) - - def test_EnumDomains(self): - handle = self.conn.Connect2(None, security.SEC_FLAG_MAXIMUM_ALLOWED) - domains = toArray(self.conn.EnumDomains(handle, 0, -1)) - self.conn.Close(handle) - diff --git a/source4/scripting/python/samba/tests/dcerpc/unix.py b/source4/scripting/python/samba/tests/dcerpc/unix.py deleted file mode 100644 index aa47b71b16..0000000000 --- a/source4/scripting/python/samba/tests/dcerpc/unix.py +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/python - -# Unix SMB/CIFS implementation. -# Copyright (C) Jelmer Vernooij 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 . -# - -from samba.dcerpc import unixinfo -from samba.tests import RpcInterfaceTestCase - -class UnixinfoTests(RpcInterfaceTestCase): - def setUp(self): - self.conn = unixinfo.unixinfo("ncalrpc:", self.get_loadparm()) - - def test_getpwuid(self): - infos = self.conn.GetPWUid(range(512)) - self.assertEquals(512, len(infos)) - self.assertEquals("/bin/false", infos[0].shell) - self.assertTrue(isinstance(infos[0].homedir, unicode)) - - def test_gidtosid(self): - self.conn.GidToSid(1000) - - def test_uidtosid(self): - self.conn.UidToSid(1000) diff --git a/source4/scripting/python/samba/tests/misc.py b/source4/scripting/python/samba/tests/misc.py new file mode 100644 index 0000000000..e9b5127a5a --- /dev/null +++ b/source4/scripting/python/samba/tests/misc.py @@ -0,0 +1,64 @@ +#!/usr/bin/python + +# Unix SMB/CIFS implementation. +# Copyright (C) Jelmer Vernooij 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 . +# + +import unittest +from samba.dcerpc import misc + +text1 = "76f53846-a7c2-476a-ae2c-20e2b80d7b34" +text2 = "344edffa-330a-4b39-b96e-2c34da52e8b1" + +class GUIDTests(unittest.TestCase): + + def test_str(self): + guid = misc.GUID(text1) + self.assertEquals(text1, str(guid)) + + def test_repr(self): + guid = misc.GUID(text1) + self.assertEquals("GUID('%s')" % text1, repr(guid)) + + def test_compare_different(self): + guid1 = misc.GUID(text1) + guid2 = misc.GUID(text2) + self.assertTrue(cmp(guid1, guid2) > 0) + + def test_compare_same(self): + guid1 = misc.GUID(text1) + guid2 = misc.GUID(text1) + self.assertEquals(0, cmp(guid1, guid2)) + self.assertEquals(guid1, guid2) + + + + +class PolicyHandleTests(unittest.TestCase): + + def test_init(self): + x = misc.policy_handle(text1, 1) + self.assertEquals(1, x.handle_type) + self.assertEquals(text1, str(x.uuid)) + + def test_repr(self): + x = misc.policy_handle(text1, 42) + self.assertEquals("policy_handle(%d, '%s')" % (42, text1), repr(x)) + + def test_str(self): + x = misc.policy_handle(text1, 42) + self.assertEquals("%d, %s" % (42, text1), str(x)) + diff --git a/source4/scripting/python/samba/tests/registry.py b/source4/scripting/python/samba/tests/registry.py new file mode 100644 index 0000000000..526b2340cc --- /dev/null +++ b/source4/scripting/python/samba/tests/registry.py @@ -0,0 +1,50 @@ +#!/usr/bin/python + +# Unix SMB/CIFS implementation. +# Copyright (C) Jelmer Vernooij 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 . +# + +from samba.dcerpc import winreg +import unittest +from samba.tests import RpcInterfaceTestCase + + +class WinregTests(RpcInterfaceTestCase): + def setUp(self): + self.conn = winreg.winreg("ncalrpc:", self.get_loadparm(), + self.get_credentials()) + + def get_hklm(self): + return self.conn.OpenHKLM(None, + winreg.KEY_QUERY_VALUE | winreg.KEY_ENUMERATE_SUB_KEYS) + + def test_hklm(self): + handle = self.conn.OpenHKLM(None, + winreg.KEY_QUERY_VALUE | winreg.KEY_ENUMERATE_SUB_KEYS) + self.conn.CloseKey(handle) + + def test_getversion(self): + handle = self.get_hklm() + version = self.conn.GetVersion(handle) + self.assertEquals(int, version.__class__) + self.conn.CloseKey(handle) + + def test_getkeyinfo(self): + handle = self.conn.OpenHKLM(None, + winreg.KEY_QUERY_VALUE | winreg.KEY_ENUMERATE_SUB_KEYS) + x = self.conn.QueryInfoKey(handle, winreg.String()) + self.assertEquals(9, len(x)) # should return a 9-tuple + self.conn.CloseKey(handle) diff --git a/source4/scripting/python/samba/tests/rpcecho.py b/source4/scripting/python/samba/tests/rpcecho.py new file mode 100644 index 0000000000..12638e2397 --- /dev/null +++ b/source4/scripting/python/samba/tests/rpcecho.py @@ -0,0 +1,69 @@ +#!/usr/bin/python + +# Unix SMB/CIFS implementation. +# Copyright (C) Jelmer Vernooij 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 . +# + +from samba.dcerpc import echo +from samba.ndr import ndr_pack, ndr_unpack +import unittest +from samba.tests import RpcInterfaceTestCase + + +class RpcEchoTests(RpcInterfaceTestCase): + def setUp(self): + self.conn = echo.rpcecho("ncalrpc:", self.get_loadparm()) + + def test_two_contexts(self): + self.conn2 = echo.rpcecho("ncalrpc:", self.get_loadparm(), basis_connection=self.conn) + self.assertEquals(3, self.conn2.AddOne(2)) + + def test_abstract_syntax(self): + self.assertEquals(("60a15ec5-4de8-11d7-a637-005056a20182", 1), + self.conn.abstract_syntax) + + def test_addone(self): + self.assertEquals(2, self.conn.AddOne(1)) + + def test_echodata(self): + self.assertEquals([1,2,3], self.conn.EchoData([1, 2, 3])) + + def test_call(self): + self.assertEquals(u"foobar", self.conn.TestCall(u"foobar")) + + def test_surrounding(self): + surrounding_struct = echo.Surrounding() + surrounding_struct.x = 4 + surrounding_struct.surrounding = [1,2,3,4] + y = self.conn.TestSurrounding(surrounding_struct) + self.assertEquals(8 * [0], y.surrounding) + + def test_manual_request(self): + self.assertEquals("\x01\x00\x00\x00", self.conn.request(0, chr(0) * 4)) + + def test_server_name(self): + self.assertEquals(None, self.conn.server_name) + + +class NdrEchoTests(unittest.TestCase): + def test_info1_push(self): + x = echo.info1() + x.v = 42 + self.assertEquals("\x2a", ndr_pack(x)) + + def test_info1_pull(self): + x = ndr_unpack(echo.info1, "\x42") + self.assertEquals(x.v, 66) diff --git a/source4/scripting/python/samba/tests/sam.py b/source4/scripting/python/samba/tests/sam.py new file mode 100644 index 0000000000..50e00a3f9e --- /dev/null +++ b/source4/scripting/python/samba/tests/sam.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Unix SMB/CIFS implementation. +# Copyright © Jelmer Vernooij 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 . +# + +from samba.dcerpc import samr, security +from samba.tests import RpcInterfaceTestCase + +# FIXME: Pidl should be doing this for us +def toArray((handle, array, num_entries)): + ret = [] + for x in range(num_entries): + ret.append((array.entries[x].idx, array.entries[x].name)) + return ret + + +class SamrTests(RpcInterfaceTestCase): + def setUp(self): + self.conn = samr.samr("ncalrpc:", self.get_loadparm()) + + def test_connect5(self): + (level, info, handle) = self.conn.Connect5(None, 0, 1, samr.ConnectInfo1()) + + def test_connect2(self): + handle = self.conn.Connect2(None, security.SEC_FLAG_MAXIMUM_ALLOWED) + + def test_EnumDomains(self): + handle = self.conn.Connect2(None, security.SEC_FLAG_MAXIMUM_ALLOWED) + domains = toArray(self.conn.EnumDomains(handle, 0, -1)) + self.conn.Close(handle) + diff --git a/source4/scripting/python/samba/tests/unix.py b/source4/scripting/python/samba/tests/unix.py new file mode 100644 index 0000000000..aa47b71b16 --- /dev/null +++ b/source4/scripting/python/samba/tests/unix.py @@ -0,0 +1,37 @@ +#!/usr/bin/python + +# Unix SMB/CIFS implementation. +# Copyright (C) Jelmer Vernooij 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 . +# + +from samba.dcerpc import unixinfo +from samba.tests import RpcInterfaceTestCase + +class UnixinfoTests(RpcInterfaceTestCase): + def setUp(self): + self.conn = unixinfo.unixinfo("ncalrpc:", self.get_loadparm()) + + def test_getpwuid(self): + infos = self.conn.GetPWUid(range(512)) + self.assertEquals(512, len(infos)) + self.assertEquals("/bin/false", infos[0].shell) + self.assertTrue(isinstance(infos[0].homedir, unicode)) + + def test_gidtosid(self): + self.conn.GidToSid(1000) + + def test_uidtosid(self): + self.conn.UidToSid(1000) diff --git a/source4/selftest/tests.sh b/source4/selftest/tests.sh index 525179189b..dd5bf6dfaf 100755 --- a/source4/selftest/tests.sh +++ b/source4/selftest/tests.sh @@ -433,22 +433,22 @@ plantest "registry.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/lib/regist plantest "tdb.python" none PYTHONPATH="$PYTHONPATH:../lib/tdb/python/tests" $SUBUNITRUN simple plantest "auth.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/auth/tests/" $SUBUNITRUN bindings plantest "security.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/libcli/security/tests" $SUBUNITRUN bindings -plantest "misc.python" none $SUBUNITRUN samba.tests.dcerpc.misc +plantest "misc.python" none $SUBUNITRUN samba.tests.misc plantest "param.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/param/tests" $SUBUNITRUN bindings plantest "upgrade.python" none $SUBUNITRUN samba.tests.upgrade plantest "samba.python" none $SUBUNITRUN samba.tests plantest "provision.python" none $SUBUNITRUN samba.tests.provision plantest "samba3.python" none $SUBUNITRUN samba.tests.samba3 -plantest "samr.python" dc:local $SUBUNITRUN samba.tests.dcerpc.sam -plantest "dcerpc.bare.python" dc:local $SUBUNITRUN samba.tests.dcerpc.bare -plantest "unixinfo.python" dc:local $SUBUNITRUN samba.tests.dcerpc.unix +plantest "samr.python" dc:local $SUBUNITRUN samba.tests.sam +plantest "dcerpc.bare.python" dc:local $SUBUNITRUN samba.tests.bare +plantest "unixinfo.python" dc:local $SUBUNITRUN samba.tests.unix plantest "samdb.python" none $SUBUNITRUN samba.tests.samdb plantest "shares.python" none $SUBUNITRUN samba.tests.shares plantest "messaging.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/lib/messaging/tests" $SUBUNITRUN bindings plantest "samba3sam.python" none PYTHONPATH="$PYTHONPATH:$samba4srcdir/dsdb/samdb/ldb_modules/tests" $SUBUNITRUN samba3sam plantest "subunit.python" none $SUBUNITRUN subunit -plantest "rpcecho.python" dc:local $SUBUNITRUN samba.tests.dcerpc.rpcecho -plantest "winreg.python" dc:local $SUBUNITRUN -U\$USERNAME%\$PASSWORD samba.tests.dcerpc.registry +plantest "rpcecho.python" dc:local $SUBUNITRUN samba.tests.rpcecho +plantest "winreg.python" dc:local $SUBUNITRUN -U\$USERNAME%\$PASSWORD samba.tests.registry plantest "ldap.python" dc PYTHONPATH="$PYTHONPATH:../lib/subunit/python" $PYTHON $samba4srcdir/lib/ldb/tests/python/ldap.py $CONFIGURATION \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN plantest "possibleInferiors.python" dc $PYTHON $samba4srcdir/dsdb/samdb/ldb_modules/tests/possibleinferiors.py $CONFIGURATION ldap://\$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN plantest "blackbox.samba3dump" none $PYTHON $samba4srcdir/scripting/bin/samba3dump $samba4srcdir/../testdata/samba3 -- cgit