diff options
-rw-r--r-- | selftest/run.py | 8 | ||||
-rwxr-xr-x | selftest/selftest.py | 10 | ||||
-rw-r--r-- | selftest/tests/test_run.py | 14 |
3 files changed, 25 insertions, 7 deletions
diff --git a/selftest/run.py b/selftest/run.py index 4ef10de142..c40dd7e389 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 <http://www.gnu.org/licenses/>. -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 cbc24f13ce..5c9bd7d13c 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 040c143895..f7a1dda436 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")) |