Project

General

Profile

Bug #38845

erreur d'évaluation d'un champ lazy avec une valeur en utf-8

Added by Serghei Mihai 3 months ago. Updated 27 days ago.

Status:
Fermé
Priority:
Bas
Assignee:
-
Target version:
-
Start date:
08 Jan 2020
Due date:
% Done:

0%

Patch proposed:
No
Planning:
No

Description

Situation arrivée dans #38763 ou la condition de sortie de page contient: "professionnel" in form_var_type_demandeur et le champ contient des caractères en utf-8.

(Pdb) value in self.get_value()
*** UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 21: ordinal not in range(128)

ou
(Pdb) value, type(value)
(u'professionnel', <class 'django.utils.safestring.SafeText'>)
(Pdb) self.get_value(), type(self.get_value())
('Un professionnel du d\xc3\xa9m\xc3\xa9nagement', <type 'str'>)

History

#2 Updated by Thomas Noël 3 months ago

D'où vient ce code ?

value in self.get_value()

(c'est quoi self ?)

#3 Updated by Frédéric Péters 3 months ago

Ce sera corrigé (par le passage) en Python 3, les bricolages ici seront rejetés.

#4 Updated by Thomas Noël 3 months ago

Frédéric Péters a écrit :

Ce sera corrigé (par le passage) en Python 3, les bricolages ici seront rejetés.

Le code en cause serait dans wcs/variables.py :

    def __contains__(self, value):
        if self._field.key == 'items':
            return misc.site_encode(value) in self._data.get(self._field.id)    <-- site_encode
        return value in self.get_value()                                        <-- pas ici

Il y avait déjà eu le site_encode à l'occasion de #28416, et dans ce ticket tu disais Frédéric "prendre le risque de divergence" (note 3) : est-ce justement que tu ne faisais pas l'encodage sur la dernière ligne de la fonction ?

#5 Updated by Frédéric Péters 3 months ago

Je ne réfléchirai pas une seconde à ce ticket.

#6 Updated by Thomas Noël 3 months ago

  • Priority changed from Normal to Bas

#8 Updated by Frédéric Péters 27 days ago

  • Status changed from Nouveau to Fermé

Obsolète via le passage à Python 3.

Also available in: Atom PDF