diff options
-rwxr-xr-x | source4/scripting/bin/subunitrun | 22 | ||||
-rw-r--r-- | source4/scripting/python/samba/__init__.py | 17 |
2 files changed, 12 insertions, 27 deletions
diff --git a/source4/scripting/bin/subunitrun b/source4/scripting/bin/subunitrun index 21243a73ec5..bc7b42c610c 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 6fcac16691e..5294368b6dc 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. |