Skip to content

Commit 3419145

Browse files
authored
Merge pull request #1172 from fermayo/fix-utf8-envvars
Fix creating containers with env vars with unicode characters
2 parents fb41965 + 5bedd32 commit 3419145

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

docker/utils/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,7 @@ def format_environment(environment):
993993
def format_env(key, value):
994994
if value is None:
995995
return key
996-
return '{key}={value}'.format(key=key, value=value)
996+
return u'{key}={value}'.format(key=key, value=value)
997997
return [format_env(*var) for var in six.iteritems(environment)]
998998

999999

tests/unit/container_test.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# -*- coding: utf-8 -*-
2+
13
import datetime
24
import json
35
import signal
@@ -1155,6 +1157,24 @@ def test_create_container_with_sysctl(self):
11551157
args[1]['timeout'], DEFAULT_TIMEOUT_SECONDS
11561158
)
11571159

1160+
def test_create_container_with_unicode_envvars(self):
1161+
envvars_dict = {
1162+
'foo': u'☃',
1163+
}
1164+
1165+
expected = [
1166+
u'foo=☃'
1167+
]
1168+
1169+
self.client.create_container(
1170+
'busybox', 'true',
1171+
environment=envvars_dict,
1172+
)
1173+
1174+
args = fake_request.call_args
1175+
self.assertEqual(args[0][1], url_prefix + 'containers/create')
1176+
self.assertEqual(json.loads(args[1]['data'])['Env'], expected)
1177+
11581178

11591179
class ContainerTest(DockerClientTest):
11601180
def test_list_containers(self):

0 commit comments

Comments
 (0)