summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTiago Gomes <tiago.gomes@codethink.co.uk>2013-08-16 08:32:41 +0000
committerTiago Gomes <tiago.gomes@codethink.co.uk>2013-08-16 13:05:18 +0000
commit2514eb9717ab6f8161d1fb403ca2bfff9e1169ea (patch)
treec3fb8f8f6a8ca4ed0decd978648f5f79908057ea
parent0a5ef89e107c22a5d1931838526fe3b22af42b95 (diff)
downloaddefinitions-2514eb9717ab6f8161d1fb403ca2bfff9e1169ea.tar.gz
Utility function to convert all values in a dictionary to strings
This will be useful in the next commit, where we want to construct an environment to run a command from a dictionary. The cliapp runcmd method expects that the values in this dictionary are strings, so we need to convert them before.
-rw-r--r--morphlib/util.py6
-rw-r--r--morphlib/util_tests.py5
2 files changed, 10 insertions, 1 deletions
diff --git a/morphlib/util.py b/morphlib/util.py
index 7526c93c..22288cac 100644
--- a/morphlib/util.py
+++ b/morphlib/util.py
@@ -361,7 +361,6 @@ def parse_environment_pairs(env, pairs):
return dict(env.items() + extra_env.items())
-
def get_host_architecture(): # pragma: no cover
'''Get the canonical Morph name for the host's architecture.'''
@@ -381,3 +380,8 @@ def get_host_architecture(): # pragma: no cover
raise morphlib.Error('Unknown host architecture %s' % machine)
return table[machine]
+
+
+def sanitize_environment(env):
+ for k in env:
+ env[k] = str(env[k])
diff --git a/morphlib/util_tests.py b/morphlib/util_tests.py
index ca9fe5ae..2ad9e8aa 100644
--- a/morphlib/util_tests.py
+++ b/morphlib/util_tests.py
@@ -105,3 +105,8 @@ class ParseEnvironmentPairsTests(unittest.TestCase):
morphlib.util.parse_environment_pairs,
{"foo": "bar"},
["foo=bar"])
+
+ def test_sanitize_environment(self):
+ d = { 'a': 1 }
+ morphlib.util.sanitize_environment(d)
+ self.assertTrue(isinstance(d['a'], str))