summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfermayo <fermayo@gmail.com>2016-08-25 13:34:54 +0200
committerfermayo <fermayo@gmail.com>2016-08-25 13:36:02 +0200
commit5bedd32a6942e89eacd4f63298551404856be5fc (patch)
tree0b131a60e1ad5c5f1c8e90d1b552ede24832ba65
parentfb41965272b5c0e7c911ee268270b92e2da06c1d (diff)
downloaddocker-py-5bedd32a6942e89eacd4f63298551404856be5fc.tar.gz
Fix creating containers with env vars with unicode characters
Signed-off-by: Fernando Mayo <fernando@docker.com>
-rw-r--r--docker/utils/utils.py2
-rw-r--r--tests/unit/container_test.py20
2 files changed, 21 insertions, 1 deletions
diff --git a/docker/utils/utils.py b/docker/utils/utils.py
index a5fbe0b..8385a76 100644
--- a/docker/utils/utils.py
+++ b/docker/utils/utils.py
@@ -993,7 +993,7 @@ def format_environment(environment):
def format_env(key, value):
if value is None:
return key
- return '{key}={value}'.format(key=key, value=value)
+ return u'{key}={value}'.format(key=key, value=value)
return [format_env(*var) for var in six.iteritems(environment)]
diff --git a/tests/unit/container_test.py b/tests/unit/container_test.py
index c480462..3cea42f 100644
--- a/tests/unit/container_test.py
+++ b/tests/unit/container_test.py
@@ -1,3 +1,5 @@
+# -*- coding: utf-8 -*-
+
import datetime
import json
import signal
@@ -1155,6 +1157,24 @@ class CreateContainerTest(DockerClientTest):
args[1]['timeout'], DEFAULT_TIMEOUT_SECONDS
)
+ def test_create_container_with_unicode_envvars(self):
+ envvars_dict = {
+ 'foo': u'☃',
+ }
+
+ expected = [
+ u'foo=☃'
+ ]
+
+ self.client.create_container(
+ 'busybox', 'true',
+ environment=envvars_dict,
+ )
+
+ args = fake_request.call_args
+ self.assertEqual(args[0][1], url_prefix + 'containers/create')
+ self.assertEqual(json.loads(args[1]['data'])['Env'], expected)
+
class ContainerTest(DockerClientTest):
def test_list_containers(self):