fix unicode issues for values loaded from 'backends' config file

This commit is contained in:
Romain Bignon 2014-05-19 09:20:34 +02:00
commit 5a6cdce345
2 changed files with 6 additions and 4 deletions

View file

@ -330,7 +330,7 @@ class ConsoleApplication(BaseApplication):
if key not in params or edit:
params[key] = self.ask(value, default=params[key] if (key in params) else value.default)
else:
print(u' [%s] %s: %s' % (key, value.description, '(masked)' if value.masked else params[key]))
print(u' [%s] %s: %s' % (key, value.description, '(masked)' if value.masked else to_unicode(params[key])))
if asked_config:
print('-------------------------%s' % ('-' * len(module.name)))
@ -370,7 +370,7 @@ class ConsoleApplication(BaseApplication):
if isinstance(question, Value):
v = copy(question)
if default is not None:
v.default = default
v.default = to_unicode(default) if isinstance(default, str) else default
if masked is not None:
v.masked = masked
if regexp is not None:
@ -442,7 +442,7 @@ class ConsoleApplication(BaseApplication):
if v.tiny:
question = u'%s (%s)' % (question, '/'.join((s.upper() if s == v.default else s)
for s in (v.choices.iterkeys())))
for s in v.choices.iterkeys()))
for key, value in v.choices.iteritems():
print(' %s%s%s: %s' % (self.BOLD, key, self.NC, value))
else:

View file

@ -66,6 +66,8 @@ class Value(object):
self.label = kwargs.get('label', kwargs.get('description', None))
self.description = kwargs.get('description', kwargs.get('label', None))
self.default = kwargs.get('default', None)
if isinstance(self.default, str):
self.default = to_unicode(self.default)
self.regexp = kwargs.get('regexp', None)
self.choices = kwargs.get('choices', None)
if isinstance(self.choices, (list, tuple)):
@ -107,9 +109,9 @@ class Value(object):
"""
Set a value.
"""
self.check_valid(v)
if isinstance(v, str):
v = to_unicode(v)
self.check_valid(v)
self._value = v
def dump(self):