selftest.run: Factor out exported_envvars_str.
authorJelmer Vernooij <jelmer@samba.org>
Mon, 5 Mar 2012 02:49:50 +0000 (03:49 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Mon, 5 Mar 2012 02:49:50 +0000 (03:49 +0100)
selftest/run.py
selftest/selftest.py
selftest/tests/test_run.py

index 25f3e5d..20ede65 100644 (file)
@@ -68,3 +68,12 @@ def expand_command_run(cmd, supports_loadfile, supports_idlist, subtests=None):
             "Running subtests requested, but command does not support "
             "this.")
         return (cmd, None)
+
+
+def exported_envvars_str(vars, names):
+    out = ""
+    for n in names:
+        if not n in vars:
+            continue
+        out += "%s=%s\n" % (n, vars[n])
+    return out
index 893ff4c..9ca1e45 100755 (executable)
@@ -42,6 +42,7 @@ from selftest.run import (
     expand_environment_strings,
     expand_command_list,
     expand_command_run,
+    exported_envvars_str,
     )
 from selftest.target import (
     EnvironmentManager,
@@ -446,17 +447,6 @@ exported_envvars = [
     "LOCAL_PATH"
 ]
 
-def exported_envvars_str(testenv_vars):
-    out = ""
-
-    for n in exported_envvars:
-        if not n in testenv_vars:
-            continue
-        out += "%s=%s\n" % (n, testenv_vars[n])
-
-    return out
-
-
 def switch_env(name, prefix):
     if ":" in name:
         (envname, option) = name.split(":", 1)
@@ -500,7 +490,7 @@ if opts.testenv:
     os.environ["PIDDIR"] = testenv_vars["PIDDIR"]
     os.environ["ENVNAME"] = testenv_name
 
-    envvarstr = exported_envvars_str(testenv_vars)
+    envvarstr = exported_envvars_str(testenv_vars, exported_envvars)
 
     term = os.environ.get("TERMINAL", "xterm -e")
     cmd = """'echo -e "
index f1ce4bc..894ceaa 100644 (file)
@@ -25,6 +25,7 @@ from selftest.run import (
     expand_command_list,
     expand_environment_strings,
     expand_command_run,
+    exported_envvars_str,
     )
 
 from selftest.tests import TestCase
@@ -77,3 +78,17 @@ class ExpandCommandRunTests(TestCase):
     def test_loadlist_all(self):
         self.assertEquals(("test ", None),
             expand_command_run("test $LOADLIST", True, False))
+
+
+class ExportedEnvvarsStrTests(TestCase):
+
+    def test_no_vars(self):
+        self.assertEquals("", exported_envvars_str({}, ["foo", "bar"]))
+
+    def test_vars(self):
+        self.assertEquals("foo=1\n",
+            exported_envvars_str({"foo": "1"}, ["foo", "bar"]))
+
+    def test_vars_unknown(self):
+        self.assertEquals("foo=1\n",
+            exported_envvars_str({"foo": "1", "bla": "2"}, ["foo", "bar"]))