summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsource4/scripting/bin/subunitrun22
-rw-r--r--source4/scripting/python/samba/__init__.py17
2 files changed, 12 insertions, 27 deletions
diff --git a/source4/scripting/bin/subunitrun b/source4/scripting/bin/subunitrun
index 21243a73ec..bc7b42c610 100755
--- a/source4/scripting/bin/subunitrun
+++ b/source4/scripting/bin/subunitrun
@@ -26,12 +26,7 @@ import optparse
import samba
samba.ensure_external_module("testtools", "testtools")
samba.ensure_external_module("subunit", "subunit/python")
-try:
- from subunit.run import SubunitTestRunner, TestProgram
-except ImportError:
- samba.force_bundled_package("testtools", "testtools")
- samba.force_bundled_package("subunit", "subunit/python")
- from subunit.run import SubunitTestRunner, TestProgram
+from subunit.run import SubunitTestRunner
import samba.getopt as options
import samba.tests
@@ -39,15 +34,20 @@ import samba.tests
parser = optparse.OptionParser("subunitrun [options] <tests>")
credopts = options.CredentialsOptions(parser)
parser.add_option_group(credopts)
-parser.add_option('-l', '--list', dest='listtests', default=False,
- help='List tests rather than running them.',
- action="store_true")
+try:
+ from subunit.run import TestProgram
+except ImportError:
+ from unittest import TestProgram
+else:
+ parser.add_option('-l', '--list', dest='listtests', default=False,
+ help='List tests rather than running them.',
+ action="store_true")
opts, args = parser.parse_args()
samba.tests.cmdline_credentials = credopts.get_credentials(samba.tests.env_loadparm())
-if opts.listtests:
+if getattr(opts, "listtests", False):
args.insert(0, "--list")
runner = SubunitTestRunner()
-program = TestProgram(module=None, argv=[sys.argv[0]] + args, testRunner=runner, stdout=sys.stdout)
+program = TestProgram(module=None, argv=[sys.argv[0]] + args, testRunner=runner)
diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py
index 6fcac16691..5294368b6d 100644
--- a/source4/scripting/python/samba/__init__.py
+++ b/source4/scripting/python/samba/__init__.py
@@ -318,27 +318,12 @@ def import_bundled_package(modulename, location):
sys.path.insert(0,
os.path.join(os.path.dirname(__file__),
"../../../../lib", location))
- __import__(modulename)
+ sys.modules[modulename] = __import__(modulename)
else:
sys.modules[modulename] = __import__(
"samba.external.%s" % modulename, fromlist=["samba.external"])
-def force_bundled_package(packagename, location):
- """Forcibly use the bundled package.
-
- This will first unload the system module and then load the bundled one.
-
- :param packagename: The package name
- :param location: Location to add to sys.path (can be relative to
- ${srcdir}/lib)
- """
- for m in sys.modules.keys():
- if m.startswith("%s." % packagename):
- del sys.modules[m]
- import_bundled_package(packagename, location)
-
-
def ensure_external_module(modulename, location):
"""Add a location to sys.path if an external dependency can't be found.