Projet

Général

Profil

Bug #37880

UnicodeEncodeError sur render_json_schema

Ajouté par Emmanuel Cazenave il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
22 novembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Sur un https://passerelle-modele-test.demarches.sitiv.fr/atal/atal-recette/, donc un schéma JSON déclare "'additionalProperties': False,",
la traduction de 'no additional properties' étant 'pas de paramètres additionnels'.

File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 957, in render_annotated                                                                  
    return self.render(context)
  File "/usr/lib/python2.7/dist-packages/django/template/library.py", line 203, in render                                                                         
    output = self.func(*resolved_args, **resolved_kwargs)                                                                                                         
  File "/usr/lib/python2.7/dist-packages/passerelle/base/templatetags/passerelle.py", line 240, in render_body_schemas                                            
    s += render_json_schema(body_schemas['application/json'])                                                                                                     
  File "/usr/lib/python2.7/dist-packages/passerelle/base/templatetags/passerelle.py", line 191, in render_json_schema                                             
    s += format_html(', <em class="additional-properties-false">{}</em>', _('no additional properties'))                                                          
  File "/usr/lib/python2.7/dist-packages/django/utils/html.py", line 94, in format_html                                                                           
    return mark_safe(format_string.format(*args_safe, **kwargs_safe))                                                                                             
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8' in position 12: ordinal not in range(128)

Fichiers

Révisions associées

Révision c10b2057 (diff)
Ajouté par Emmanuel Cazenave il y a plus de 4 ans

templatetags: use unicode_literals (#37880)

Historique

#1

Mis à jour par Emmanuel Cazenave il y a plus de 4 ans

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Emmanuel Cazenave
#3

Mis à jour par Emmanuel Cazenave il y a plus de 4 ans

#4

Mis à jour par Frédéric Péters il y a plus de 4 ans

Tu veux pas plutôt faire un format_html local qui fasse un force_text() sur le premier paramètre puis appel au format_html de django ? (ça me semble moins facile à rater que penser à marquer le premier paramètre comme unicode)

#5

Mis à jour par Emmanuel Cazenave il y a plus de 4 ans

jabber :

bdauvergne : et from future import unicode_literals ?
c'est python3 proof comme ça

Serghei : yes: https://docs.djangoproject.com/fr/1.11/topics/python3/#porting-tips

Et le patch.

#6

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée

Yeah make passerelle great again.

#7

Mis à jour par Emmanuel Cazenave il y a plus de 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit c10b2057efc703744b2261c5d8e08d168748f696
Author: Emmanuel Cazenave <ecazenave@entrouvert.com>
Date:   Fri Nov 22 12:16:19 2019 +0100

    templatetags: use unicode_literals (#37880)
#8

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF