summaryrefslogtreecommitdiff
path: root/source4/scripting/python/samba/tests
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2012-12-28 15:37:14 +0100
committerAndrew Bartlett <abartlet@samba.org>2013-03-02 03:57:34 +0100
commit87afc3aee1ea593069322a49355dd8780d99e123 (patch)
tree8e1ea6678d93b53f21b34c4940b7d5a64e0f5020 /source4/scripting/python/samba/tests
parent80fce353e740c793619005ac102ab07fb5e7d280 (diff)
downloadsamba-87afc3aee1ea593069322a49355dd8780d99e123.tar.gz
samba-87afc3aee1ea593069322a49355dd8780d99e123.tar.bz2
samba-87afc3aee1ea593069322a49355dd8780d99e123.zip
Move python modules from source4/scripting/python/ to python/.
Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Sat Mar 2 03:57:34 CET 2013 on sn-devel-104
Diffstat (limited to 'source4/scripting/python/samba/tests')
-rw-r--r--source4/scripting/python/samba/tests/__init__.py237
-rw-r--r--source4/scripting/python/samba/tests/auth.py31
-rw-r--r--source4/scripting/python/samba/tests/blackbox/__init__.py17
-rw-r--r--source4/scripting/python/samba/tests/blackbox/ndrdump.py49
-rw-r--r--source4/scripting/python/samba/tests/blackbox/samba_tool_drs.py97
-rw-r--r--source4/scripting/python/samba/tests/common.py40
-rw-r--r--source4/scripting/python/samba/tests/core.py63
-rw-r--r--source4/scripting/python/samba/tests/credentials.py98
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/__init__.py20
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/bare.py51
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/dnsserver.py241
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/misc.py62
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/registry.py51
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/rpc_talloc.py84
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/rpcecho.py71
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/sam.py50
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/srvsvc.py68
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/testrpc.py141
-rw-r--r--source4/scripting/python/samba/tests/dcerpc/unix.py49
-rw-r--r--source4/scripting/python/samba/tests/dns.py622
-rw-r--r--source4/scripting/python/samba/tests/docs.py127
-rw-r--r--source4/scripting/python/samba/tests/dsdb.py130
-rw-r--r--source4/scripting/python/samba/tests/gensec.py146
-rw-r--r--source4/scripting/python/samba/tests/getopt.py55
-rw-r--r--source4/scripting/python/samba/tests/hostconfig.py74
-rw-r--r--source4/scripting/python/samba/tests/libsmb_samba_internal.py78
-rw-r--r--source4/scripting/python/samba/tests/messaging.py67
-rw-r--r--source4/scripting/python/samba/tests/netcmd.py90
-rw-r--r--source4/scripting/python/samba/tests/ntacls.py83
-rw-r--r--source4/scripting/python/samba/tests/param.py57
-rw-r--r--source4/scripting/python/samba/tests/policy.py34
-rw-r--r--source4/scripting/python/samba/tests/posixacl.py732
-rw-r--r--source4/scripting/python/samba/tests/provision.py203
-rw-r--r--source4/scripting/python/samba/tests/registry.py60
-rw-r--r--source4/scripting/python/samba/tests/samba3.py219
-rw-r--r--source4/scripting/python/samba/tests/samba3sam.py1125
-rw-r--r--source4/scripting/python/samba/tests/samba_tool/__init__.py15
-rw-r--r--source4/scripting/python/samba/tests/samba_tool/base.py114
-rw-r--r--source4/scripting/python/samba/tests/samba_tool/gpo.py79
-rw-r--r--source4/scripting/python/samba/tests/samba_tool/group.py169
-rw-r--r--source4/scripting/python/samba/tests/samba_tool/ntacl.py135
-rw-r--r--source4/scripting/python/samba/tests/samba_tool/processes.py35
-rw-r--r--source4/scripting/python/samba/tests/samba_tool/timecmd.py43
-rw-r--r--source4/scripting/python/samba/tests/samba_tool/user.py362
-rw-r--r--source4/scripting/python/samba/tests/samdb.py96
-rw-r--r--source4/scripting/python/samba/tests/security.py143
-rw-r--r--source4/scripting/python/samba/tests/source.py264
-rw-r--r--source4/scripting/python/samba/tests/strings.py103
-rw-r--r--source4/scripting/python/samba/tests/unicodenames.py29
-rw-r--r--source4/scripting/python/samba/tests/upgrade.py40
-rw-r--r--source4/scripting/python/samba/tests/upgradeprovision.py135
-rw-r--r--source4/scripting/python/samba/tests/upgradeprovisionneeddc.py179
-rw-r--r--source4/scripting/python/samba/tests/xattr.py126
53 files changed, 0 insertions, 7489 deletions
diff --git a/source4/scripting/python/samba/tests/__init__.py b/source4/scripting/python/samba/tests/__init__.py
deleted file mode 100644
index 2df30a641bf..00000000000
--- a/source4/scripting/python/samba/tests/__init__.py
+++ /dev/null
@@ -1,237 +0,0 @@
-# Unix SMB/CIFS implementation.
-# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007-2010
-#
-# 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/>.
-#
-
-"""Samba Python tests."""
-
-import os
-import ldb
-import samba
-import samba.auth
-from samba import param
-from samba.samdb import SamDB
-import subprocess
-import tempfile
-
-samba.ensure_external_module("testtools", "testtools")
-
-# Other modules import these two classes from here, for convenience:
-from testtools.testcase import (
- TestCase as TesttoolsTestCase,
- TestSkipped,
- )
-
-
-class TestCase(TesttoolsTestCase):
- """A Samba test case."""
-
- def setUp(self):
- super(TestCase, self).setUp()
- test_debug_level = os.getenv("TEST_DEBUG_LEVEL")
- if test_debug_level is not None:
- test_debug_level = int(test_debug_level)
- self._old_debug_level = samba.get_debug_level()
- samba.set_debug_level(test_debug_level)
- self.addCleanup(samba.set_debug_level, test_debug_level)
-
- def get_loadparm(self):
- return env_loadparm()
-
- def get_credentials(self):
- return cmdline_credentials
-
-
-class LdbTestCase(TesttoolsTestCase):
- """Trivial test case for running tests against a LDB."""
-
- def setUp(self):
- super(LdbTestCase, self).setUp()
- self.filename = os.tempnam()
- self.ldb = samba.Ldb(self.filename)
-
- def set_modules(self, modules=[]):
- """Change the modules for this Ldb."""
- m = ldb.Message()
- m.dn = ldb.Dn(self.ldb, "@MODULES")
- m["@LIST"] = ",".join(modules)
- self.ldb.add(m)
- self.ldb = samba.Ldb(self.filename)
-
-
-class TestCaseInTempDir(TestCase):
-
- def setUp(self):
- super(TestCaseInTempDir, self).setUp()
- self.tempdir = tempfile.mkdtemp()
- self.addCleanup(self._remove_tempdir)
-
- def _remove_tempdir(self):
- self.assertEquals([], os.listdir(self.tempdir))
- os.rmdir(self.tempdir)
- self.tempdir = None
-
-
-def env_loadparm():
- lp = param.LoadParm()
- try:
- lp.load(os.environ["SMB_CONF_PATH"])
- except KeyError:
- raise Exception("SMB_CONF_PATH not set")
- return lp
-
-
-def env_get_var_value(var_name):
- """Returns value for variable in os.environ
-
- Function throws AssertionError if variable is defined.
- Unit-test based python tests require certain input params
- to be set in environment, otherwise they can't be run
- """
- assert var_name in os.environ.keys(), "Please supply %s in environment" % var_name
- return os.environ[var_name]
-
-
-cmdline_credentials = None
-
-class RpcInterfaceTestCase(TestCase):
- """DCE/RPC Test case."""
-
-
-class ValidNetbiosNameTests(TestCase):
-
- def test_valid(self):
- self.assertTrue(samba.valid_netbios_name("FOO"))
-
- def test_too_long(self):
- self.assertFalse(samba.valid_netbios_name("FOO"*10))
-
- def test_invalid_characters(self):
- self.assertFalse(samba.valid_netbios_name("*BLA"))
-
-
-class BlackboxProcessError(Exception):
- """This is raised when check_output() process returns a non-zero exit status
-
- Exception instance should contain the exact exit code (S.returncode),
- command line (S.cmd), process output (S.stdout) and process error stream
- (S.stderr)
- """
-
- def __init__(self, returncode, cmd, stdout, stderr):
- self.returncode = returncode
- self.cmd = cmd
- self.stdout = stdout
- self.stderr = stderr
-
- def __str__(self):
- return "Command '%s'; exit status %d; stdout: '%s'; stderr: '%s'" % (self.cmd, self.returncode,
- self.stdout, self.stderr)
-
-class BlackboxTestCase(TestCase):
- """Base test case for blackbox tests."""
-
- def _make_cmdline(self, line):
- bindir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../../bin"))
- parts = line.split(" ")
- if os.path.exists(os.path.join(bindir, parts[0])):
- parts[0] = os.path.join(bindir, parts[0])
- line = " ".join(parts)
- return line
-
- def check_run(self, line):
- line = self._make_cmdline(line)
- p = subprocess.Popen(line, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
- retcode = p.wait()
- if retcode:
- raise BlackboxProcessError(retcode, line, p.stdout.read(), p.stderr.read())
-
- def check_output(self, line):
- line = self._make_cmdline(line)
- p = subprocess.Popen(line, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, close_fds=True)
- retcode = p.wait()
- if retcode:
- raise BlackboxProcessError(retcode, line, p.stdout.read(), p.stderr.read())
- return p.stdout.read()
-
-def connect_samdb(samdb_url, lp=None, session_info=None, credentials=None,
- flags=0, ldb_options=None, ldap_only=False):
- """Create SamDB instance and connects to samdb_url database.
-
- :param samdb_url: Url for database to connect to.
- :param lp: Optional loadparm object
- :param session_info: Optional session information
- :param credentials: Optional credentials, defaults to anonymous.
- :param flags: Optional LDB flags
- :param ldap_only: If set, only remote LDAP connection will be created.
-
- Added value for tests is that we have a shorthand function
- to make proper URL for ldb.connect() while using default
- parameters for connection based on test environment
- """
- samdb_url = samdb_url.lower()
- if not "://" in samdb_url:
- if not ldap_only and os.path.isfile(samdb_url):
- samdb_url = "tdb://%s" % samdb_url
- else:
- samdb_url = "ldap://%s" % samdb_url
- # use 'paged_search' module when connecting remotely
- if samdb_url.startswith("ldap://"):
- ldb_options = ["modules:paged_searches"]
- elif ldap_only:
- raise AssertionError("Trying to connect to %s while remote "
- "connection is required" % samdb_url)
-
- # set defaults for test environment
- if lp is None:
- lp = env_loadparm()
- if session_info is None:
- session_info = samba.auth.system_session(lp)
- if credentials is None:
- credentials = cmdline_credentials
-
- return SamDB(url=samdb_url,
- lp=lp,
- session_info=session_info,
- credentials=credentials,
- flags=flags,
- options=ldb_options)
-
-
-def connect_samdb_ex(samdb_url, lp=None, session_info=None, credentials=None,
- flags=0, ldb_options=None, ldap_only=False):
- """Connects to samdb_url database
-
- :param samdb_url: Url for database to connect to.
- :param lp: Optional loadparm object
- :param session_info: Optional session information
- :param credentials: Optional credentials, defaults to anonymous.
- :param flags: Optional LDB flags
- :param ldap_only: If set, only remote LDAP connection will be created.
- :return: (sam_db_connection, rootDse_record) tuple
- """
- sam_db = connect_samdb(samdb_url, lp, session_info, credentials,
- flags, ldb_options, ldap_only)
- # fetch RootDse
- res = sam_db.search(base="", expression="", scope=ldb.SCOPE_BASE,
- attrs=["*"])
- return (sam_db, res[0])
-
-
-def delete_force(samdb, dn):
- try:
- samdb.delete(dn)
- except ldb.LdbError, (num, _):
- assert(num == ldb.ERR_NO_SUCH_OBJECT)
diff --git a/source4/scripting/python/samba/tests/auth.py b/source4/scripting/python/samba/tests/auth.py
deleted file mode 100644
index f71e1a784d2..00000000000
--- a/source4/scripting/python/samba/tests/auth.py
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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()
-
diff --git a/source4/scripting/python/samba/tests/blackbox/__init__.py b/source4/scripting/python/samba/tests/blackbox/__init__.py
deleted file mode 100644
index 361e5cfe5e5..00000000000
--- a/source4/scripting/python/samba/tests/blackbox/__init__.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (C) 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/>.
-#
-
-"""Blackbox tests. """
diff --git a/source4/scripting/python/samba/tests/blackbox/ndrdump.py b/source4/scripting/python/samba/tests/blackbox/ndrdump.py
deleted file mode 100644
index fca9a931533..00000000000
--- a/source4/scripting/python/samba/tests/blackbox/ndrdump.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# Blackbox tests for ndrdump
-# Copyright (C) 2008 Andrew Tridgell <tridge@samba.org>
-# Copyright (C) 2008 Andrew Bartlett <abartlet@samba.org>
-# Copyright (C) 2010 Jelmer Vernooij <jelmer@samba.org>
-# based on test_smbclient.sh
-
-# 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/>.
-#
-
-"""Blackbox tests for ndrdump."""
-
-import os
-from samba.tests import BlackboxTestCase
-
-for p in [ "../../../../../source4/librpc/tests", "../../../../../librpc/tests"]:
- data_path_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), p))
- print data_path_dir
- if os.path.exists(data_path_dir):
- break
-
-
-class NdrDumpTests(BlackboxTestCase):
- """Blackbox tests for ndrdump."""
-
- def data_path(self, name):
- return os.path.join(data_path_dir, name)
-
- def test_ndrdump_with_in(self):
- self.check_run("ndrdump samr samr_CreateUser in %s" % (self.data_path("samr-CreateUser-in.dat")))
-
- def test_ndrdump_with_out(self):
- self.check_run("ndrdump samr samr_CreateUser out %s" % (self.data_path("samr-CreateUser-out.dat")))
-
- def test_ndrdump_context_file(self):
- self.check_run("ndrdump --context-file %s samr samr_CreateUser out %s" % (self.data_path("samr-CreateUser-in.dat"), self.data_path("samr-CreateUser-out.dat")))
-
- def test_ndrdump_with_validate(self):
- self.check_run("ndrdump --validate samr samr_CreateUser in %s" % (self.data_path("samr-CreateUser-in.dat")))
diff --git a/source4/scripting/python/samba/tests/blackbox/samba_tool_drs.py b/source4/scripting/python/samba/tests/blackbox/samba_tool_drs.py
deleted file mode 100644
index 62d7bf123bb..00000000000
--- a/source4/scripting/python/samba/tests/blackbox/samba_tool_drs.py
+++ /dev/null
@@ -1,97 +0,0 @@
-# Blackbox tests for "samba-tool drs" command
-# Copyright (C) Kamen Mazdrashki <kamenim@samba.org> 2011
-#
-# 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/>.
-#
-
-"""Blackbox tests for samba-tool drs."""
-
-import samba.tests
-
-
-class SambaToolDrsTests(samba.tests.BlackboxTestCase):
- """Blackbox test case for samba-tool drs."""
-
- def setUp(self):
- super(SambaToolDrsTests, self).setUp()
-
- self.dc1 = samba.tests.env_get_var_value("DC1")
- self.dc2 = samba.tests.env_get_var_value("DC2")
-
- creds = self.get_credentials()
- self.cmdline_creds = "-U%s/%s%%%s" % (creds.get_domain(),
- creds.get_username(), creds.get_password())
-
- def _get_rootDSE(self, dc):
- samdb = samba.tests.connect_samdb(dc, lp=self.get_loadparm(),
- credentials=self.get_credentials(),
- ldap_only=True)
- return samdb.search(base="", scope=samba.tests.ldb.SCOPE_BASE)[0]
-
- def test_samba_tool_bind(self):
- """Tests 'samba-tool drs bind' command
- Output should be like:
- Extensions supported:
- <list-of-supported-extensions>
- Site GUID: <GUID>
- Repl epoch: 0"""
- out = self.check_output("samba-tool drs bind %s %s" % (self.dc1,
- self.cmdline_creds))
- self.assertTrue("Site GUID:" in out)
- self.assertTrue("Repl epoch:" in out)
-
- def test_samba_tool_kcc(self):
- """Tests 'samba-tool drs kcc' command
- Output should be like 'Consistency check on <DC> successful.'"""
- out = self.check_output("samba-tool drs kcc %s %s" % (self.dc1,
- self.cmdline_creds))
- self.assertTrue("Consistency check on" in out)
- self.assertTrue("successful" in out)
-
- def test_samba_tool_showrepl(self):
- """Tests 'samba-tool drs showrepl' command
- Output should be like:
- <site-name>/<domain-name>
- DSA Options: <hex-options>
- DSA object GUID: <DSA-object-GUID>
- DSA invocationId: <DSA-invocationId>
- <Inbound-connections-list>
- <Outbound-connections-list>
- <KCC-objects>
- ...
- TODO: Perhaps we should check at least for
- DSA's objectGUDI and invocationId"""
- out = self.check_output("samba-tool drs showrepl %s %s" % (self.dc1,
- self.cmdline_creds))
- self.assertTrue("DSA Options:" in out)
- self.assertTrue("DSA object GUID:" in out)
- self.assertTrue("DSA invocationId:" in out)
-
- def test_samba_tool_options(self):
- """Tests 'samba-tool drs options' command
- Output should be like 'Current DSA options: IS_GC <OTHER_FLAGS>'"""
- out = self.check_output("samba-tool drs options %s %s" % (self.dc1,
- self.cmdline_creds))
- self.assertTrue("Current DSA options:" in out)
-
- def test_samba_tool_replicate(self):
- """Tests 'samba-tool drs replicate' command
- Output should be like 'Replicate from <DC-SRC> to <DC-DEST> was successful.'"""
- nc_name = self._get_rootDSE(self.dc1)["defaultNamingContext"]
- out = self.check_output("samba-tool drs replicate %s %s %s %s" % (self.dc1,
- self.dc2,
- nc_name,
- self.cmdline_creds))
- self.assertTrue("Replicate from" in out)
- self.assertTrue("was successful" in out)
diff --git a/source4/scripting/python/samba/tests/common.py b/source4/scripting/python/samba/tests/common.py
deleted file mode 100644
index 8794e9dc8b3..00000000000
--- a/source4/scripting/python/samba/tests/common.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# Unix SMB/CIFS implementation. Tests for common.py routines
-# Copyright (C) Andrew Tridgell 2011
-#
-# 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 samba.common"""
-
-import samba, os
-import samba.tests
-from samba.common import *
-from samba.samdb import SamDB
-
-
-class CommonTests(samba.tests.TestCase):
-