Add test for NoSuchService with unicode characters

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2018-01-12 13:57:40 -08:00
parent a7ed1dcbf6
commit 97da2cc6bb
2 changed files with 10 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import operator
from functools import reduce from functools import reduce
import enum import enum
import six
from docker.errors import APIError from docker.errors import APIError
from . import parallel from . import parallel
@ -703,7 +704,9 @@ def warn_for_swarm_mode(client):
class NoSuchService(Exception): class NoSuchService(Exception):
def __init__(self, name): def __init__(self, name):
self.name = name.decode('utf8') if isinstance(name, six.binary_type):
name = name.decode('utf-8')
self.name = name
self.msg = "No such service: %s" % self.name self.msg = "No such service: %s" % self.name
def __str__(self): def __str__(self):

View File

@ -1,3 +1,4 @@
# encoding: utf-8
from __future__ import absolute_import from __future__ import absolute_import
from __future__ import unicode_literals from __future__ import unicode_literals
@ -14,6 +15,7 @@ from compose.const import COMPOSEFILE_V1 as V1
from compose.const import COMPOSEFILE_V2_0 as V2_0 from compose.const import COMPOSEFILE_V2_0 as V2_0
from compose.const import LABEL_SERVICE from compose.const import LABEL_SERVICE
from compose.container import Container from compose.container import Container
from compose.project import NoSuchService
from compose.project import Project from compose.project import Project
from compose.service import ImageType from compose.service import ImageType
from compose.service import Service from compose.service import Service
@ -562,3 +564,7 @@ class ProjectTest(unittest.TestCase):
with mock.patch('compose.project.log') as fake_log: with mock.patch('compose.project.log') as fake_log:
project.up() project.up()
assert fake_log.warn.call_count == 0 assert fake_log.warn.call_count == 0
def test_no_such_service_unicode(self):
assert NoSuchService('十六夜 咲夜'.encode('utf-8')).msg == 'No such service: 十六夜 咲夜'
assert NoSuchService('十六夜 咲夜').msg == 'No such service: 十六夜 咲夜'