[F] views: fix 2 unicode errors
1. You can now use valid unicode strings in ValidationError exception.
Previously, if 'err' contains unicode, UnicodeDecodeError was raised by format_errors()
>>> templstr = '<li>%s</li>\n'
>>> e = ValidationError(None, {None: u'oué, une exception en unicode!'})
>>> templstr % e
'<li>None (None): ou\xc3\xa9, une exception en unicode!</li>\n'
>>> templstr = u'<li>%s</li>\n'
>>> templstr % e
u'<li>None (None): ou\xe9, une exception en unicode!</li>\n'
2. The message of an Exception can contains unicode. But it now properly managed by “informal” string representation.
We can easily fix the problem by using the Exception.message attribute that still contains the original message.
>>> a = AssertionError(u'séfdsdf')
>>> a.message
u's\xe9fdsdf'
>>> str(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 1: ordinal not in range(128)
>>> a = ValueError(u'fsdfsdéfsdfs')
>>> str(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 6: ordinal not in range(128)
>>> a
ValueError(u'fsdfsd\xe9fsdfs',)
>>> unicode(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 6: ordinal not in range(128)
>>> a.message
u'fsdfsd\xe9fsdfs'
[system]
adapter=native
# database driver (postgres or sqlite)
db-driver=sqlite
# database host
db-host=
# database name
db-name=tmpdb
# database user
db-user=admin
# database password
db-password=gingkow
# database encoding
db-encoding=utf8
[admin]
login = admin
password = gingkow
[ldapuser]
adapter=ldapuser
# ldap host
host=ldap1
# base DN to lookup for usres
user-base-dn=ou=People,dc=logilab,dc=fr
# user search scope
user-scope=ONELEVEL
# classes of user
user-classes=top,posixAccount
# attribute used as login on authentication
user-login-attr=uid
# name of a group in which ldap users will be by default
user-default-group=users
# map from ldap user attributes to cubicweb attributes
user-attrs-map=gecos:email,uid:login