From: Jelmer Vernooij Date: Mon, 5 Mar 2012 02:27:40 +0000 (+0100) Subject: selftest.run: Factor out expand_command_list. X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=d6924f803904d25a7f9cac2ec69f421d7a5bdeab;p=ira%2Fwip.git selftest.run: Factor out expand_command_list. --- diff --git a/selftest/run.py b/selftest/run.py index 4ef10de1424..c40dd7e389f 100644 --- a/selftest/run.py +++ b/selftest/run.py @@ -15,7 +15,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import os +import subprocess +import warnings # expand strings from %ENV def expand_environment_strings(s, vars): @@ -26,4 +27,7 @@ def expand_environment_strings(s, vars): return s - +def expand_command_list(cmd): + if not "$LISTOPT" in cmd: + return None + return cmd.replace("$LISTOPT", "--list") diff --git a/selftest/selftest.py b/selftest/selftest.py index cbc24f13ce3..5c9bd7d13ce 100755 --- a/selftest/selftest.py +++ b/selftest/selftest.py @@ -39,7 +39,10 @@ from selftest import ( subunithelper, testlist, ) -from selftest.run import expand_environment_strings +from selftest.run import ( + expand_environment_strings, + expand_command_list, + ) from selftest.target import ( EnvironmentManager, NoneTarget, @@ -577,12 +580,11 @@ $envvarstr env_manager.teardown_env(testenv_name) elif opts.list: for (name, envname, cmd, supports_loadfile, supports_idlist, subtests) in todo: - if not "$LISTOPT" in cmd: + cmd = expand_command_list(cmd) + if cmd is None: warnings.warn("Unable to list tests in %s" % name) continue - cmd = cmd.replace("$LISTOPT", "--list") - exitcode = subprocess.call(cmd, shell=True) if exitcode != 0: diff --git a/selftest/tests/test_run.py b/selftest/tests/test_run.py index 040c1438959..f7a1dda4368 100644 --- a/selftest/tests/test_run.py +++ b/selftest/tests/test_run.py @@ -19,7 +19,10 @@ """Tests for selftest.run.""" -from selftest.run import expand_environment_strings +from selftest.run import ( + expand_command_list, + expand_environment_strings, + ) from selftest.tests import TestCase @@ -36,3 +39,12 @@ class ExpandEnvironmentStringsTests(TestCase): def test_unknown(self): self.assertEquals("foo $BLA", expand_environment_strings("foo $BLA", {})) + + +class ExpandCommandListTests(TestCase): + + def test_no_list(self): + self.assertIs(None, expand_command_list("test bla")) + + def test_list(self): + self.assertEquals("test --list", expand_command_list("test $LISTOPT"))