Bug #37322
paybox/validate vs python 3
0%
Description
File "/usr/lib/python3/dist-packages/eopayment/paybox.py" in validate 386. return self.perform(amount, bank_data, PAYBOX_DIRECT_VALIDATE_OPERATION) File "/usr/lib/python3/dist-packages/eopayment/paybox.py" in perform 376. data = dict(urlparse.parse_qsl(response.content, True, True)) File "/usr/lib/python3.5/urllib/parse.py" in parse_qsl 608. qs, _coerce_result = _coerce_args(qs) File "/usr/lib/python3.5/urllib/parse.py" in _coerce_args 115. return _decode_args(args) + (_encode_result,) File "/usr/lib/python3.5/urllib/parse.py" in _decode_args 99. return tuple(x.decode(encoding, errors) if x else '' for x in args) File "/usr/lib/python3.5/urllib/parse.py" in <genexpr> 99. return tuple(x.decode(encoding, errors) if x else '' for x in args)
Fichiers
Demandes liées
Révisions associées
paybox: fix validate/cancel operations encoding handling (#37322)
Historique
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Fichier 0001-add-support-for-sips2-cancel-validate-cash-managemen.patch 0001-add-support-for-sips2-cancel-validate-cash-managemen.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 4 ans
(testé en vrai avec paybox mais avec une référence invalide du coup il répond "non autorise" sans accent et ça teste moins).
(on appréciera au passage l'état du test avant ce patch)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Solution proposée à En cours
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Fichier 0001-paybox-fix-validate-cancel-operations-encoding-handl.patch 0001-paybox-fix-validate-cancel-operations-encoding-handl.patch ajouté
- Statut changé de En cours à Solution proposée
Il y avait d'autres tests qui eux étaient plus complets, etc.
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Lié à Bug #37321: UnicodeDecodeError validate-transaction ajouté
Mis à jour par Thomas Noël il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a plus de 4 ans
(le patch initial était tout autre chose, tapé par erreur parce qu'il s'est trouvé en haut de mon sélecteur de fichiers triant exceptionnellement les fichiers alphabétiquement plutôt que par date de modif)
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
J'ai toujours une appréhension sur la capacité de requests à détecter correctement l'encodage, j'aurai bien mis un response.encoding = 'utf-8'
puisqu'on est sûr que ça ne doit renvoyer que ça.
Mis à jour par Frédéric Péters il y a plus de 4 ans
response.encoding = 'utf-8' puisqu'on est sûr que ça ne doit renvoyer que ça
Au contraire paybox retourne :
(Pdb) response.headers {'Date': 'Tue, 29 Oct 2019 14:33:31 GMT', 'Server': 'Apache', 'Content-Length': '146', 'Keep-Alive': 'timeout=15, max=100', 'Connection': 'Keep-Alive', 'Content-Type': 'text/html; charset=ISO-8859-1'}
Prendre le .text plutôt que le .content assure justement que ça va suivre ça correctement. (bien sûr on peut se dire que paybox pourrait basculer en utf-8 et ne pas modifier cet entête, mais j'y crois moyen).
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 8a6702066d806b578ddc04145ec6910e6474f553 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Tue Oct 29 15:30:38 2019 +0100 paybox: fix validate/cancel operations encoding handling (#37322)
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
paybox: fix validate/cancel operations encoding handling (#37322)