Projet

Général

Profil

Bug #31265

iparapheur: tests de non regression avec zeep

Ajouté par Nicolas Roche il y a environ 5 ans. Mis à jour il y a environ 5 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Le but de ce ticket est de simplifier le patch de migration du connecteur iParapheur de suds vers zeep,
en omettant (dans un premier temps) la migration des verrues contenues dans le fichier soap.py.


Fichiers


Demandes liées

Lié à Passerelle - Support #31120: iparapheur: passer ce connecteur à zeepFermé06 mars 2019

Actions

Révisions associées

Révision ac5172e5 (diff)
Ajouté par Nicolas Roche il y a environ 5 ans

iparapheur: pass unit tests using zeep soap library (#31265)

Historique

#1

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Lié à Support #31120: iparapheur: passer ce connecteur à zeep ajouté
#2

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Description mis à jour (diff)
#3

Mis à jour par Nicolas Roche il y a environ 5 ans

- J'ai modifié la façon dont les 2 requêtes GET (wsdl + dépendance) sont mockées parceque la solution utilisée jusqu'à présent se basait sur la verrue dans soap.py (vouée à disparaître).
- Zeep est plus exigeant sur la structure de la requête Post, et donc j'en ai fait un vrai objet Response.
- J'ai quelque peu abusé les tests, par exemple le message de retour KOmessage pour test_get_file ne respecte pas la grammaire donnée par le WSDL et zeep qui le remarque lève une exception alors que suds ne le faisait pas. Je pense corriger et compléter les tests dans #31274.

Désolé, j'ai essayé de faire le plus succin possible, mais visiblement je n'y suis pas arrivé.
N'hésitez pas non plus à me faire des remarques sur la forme (je n'ai pas encore la vision pep8).

#4

Mis à jour par Frédéric Péters il y a environ 5 ans

-        content = data['data']
+        content = base64.b64decode(data['data'])
         content_type = data.get('content_type') if data.get('content_type') \
             else get_magic_mime(base64.b64decode(data['data']))

On peut éviter de décoder une seconde fois.

N'hésitez pas non plus à me faire des remarques sur la forme (je n'ai pas encore la vision pep8).

Et c'est la bonne approche de mimer le code environnant, mais perso tu pourrais te permettre de ne pas faire ceci :

-        except(Exception,) as exc:
-            # Exception different from suds.tranport.TransportError
-            if not exc.args or not isinstance(exc.args[0], tuple):
-                raise exc
-            # TransportError Exception
+        except(TransportError,) as exc:
             raise APIError('Transport Error: %s' % exc)

et de changer la ligne, et l'autre du même bloc, au format except TransportError as exc:.

#5

Mis à jour par Nicolas Roche il y a environ 5 ans

Merci.
Et par rapport aux tests... (je pensais m'attirer les foudres avec Mock que je ne maîtrise pas encore) ?

#6

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

Ack. J'ai un autre ticket pour simplifier les tests à base de mock. Une dernière chose, vire le module soap il n'est plus utilisé suite à ton patch.

#7

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

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

Mis à jour par Nicolas Roche il y a environ 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit ac5172e542117b1fd3829891208f286185135d2c
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Wed Mar 6 16:13:27 2019 +0100

    iparapheur: pass unit tests using zeep soap library (#31265)
#9

Mis à jour par Frédéric Péters il y a environ 5 ans

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

Mis à jour par Benjamin Dauvergne il y a environ 5 ans

  • Statut changé de Solution déployée à Fermé

Formats disponibles : Atom PDF