Projet

Général

Profil

Development #29890

rajouter des functests pour le connecteur Vivaticket

Ajouté par Serghei Mihai il y a plus de 5 ans. Mis à jour il y a environ 5 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Comme pour planitech et cmis.


Fichiers

Révisions associées

Révision a57cb9e6 (diff)
Ajouté par Serghei Mihai il y a environ 5 ans

vivaticket: add func tests (#29890)

Historique

#1

Mis à jour par Serghei Mihai il y a plus de 5 ans

  • Assigné à mis à Serghei Mihai
#2

Mis à jour par Serghei Mihai il y a plus de 5 ans

#3

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

C'est cool mais serait mieux un peux mieux si tu choisissais 'room', 'theme' et 'event' au hasard en se basant sur des appels aux endpoints correspondants.

Ça correspond plus à ce que ferait un forkflow, et permet de vérifier que ce que te renvoie les endpoints est bien formaté comme il faut pour être utilisable pour poser une réservation ...

#4

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

De mon coté je voyais plus les functests comme des tests pytest classiques mais nécessitant une instance de vivaticket en vrai, pas une instance de passerelle en vrai (pour ça pytest-django fournit déjà de quoi), genre donc avec une fixture vivaticket qui utilise le paramètre --vivaticket-url pour créer la ressource puis taper dessus (peut-être même pas via les web-services mais via l'objet ressource directement).

#5

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

Benjamin Dauvergne a écrit :

De mon coté je voyais plus les functests comme des tests pytest classiques mais nécessitant une instance de vivaticket en vrai, pas une instance de passerelle en vrai (pour ça pytest-django fournit déjà de quoi), genre donc avec une fixture vivaticket qui utilise le paramètre --vivaticket-url pour créer la ressource puis taper dessus (peut-être même pas via les web-services mais via l'objet ressource directement).

C'est pas ce que j'ai fait dans cmis et planitech où j'ai bien une vrai instance du connecteur. Ton approche me parait valable aussi (avec une préférence pour taper dans les webservices et pas juste sur l'instance).

Dans les deux cas on gagne quand même quelque chose d'important, avec une vrai instance du logiciel métier qui répond, laissons le choix de la méthode à celui qui écrit le patch non ?

#6

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

Emmanuel Cazenave a écrit :

Benjamin Dauvergne a écrit :

De mon coté je voyais plus les functests comme des tests pytest classiques mais nécessitant une instance de vivaticket en vrai, pas une instance de passerelle en vrai (pour ça pytest-django fournit déjà de quoi), genre donc avec une fixture vivaticket qui utilise le paramètre --vivaticket-url pour créer la ressource puis taper dessus (peut-être même pas via les web-services mais via l'objet ressource directement).

C'est pas ce que j'ai fait dans cmis et planitech où j'ai bien une vrai instance du connecteur. Ton approche me parait valable aussi (avec une préférence pour taper dans les webservices et pas juste sur l'instance).

Dans les deux cas on gagne quand même quelque chose d'important, avec une vrai instance du logiciel métier qui répond, laissons le choix de la méthode à celui qui écrit le patch non ?

Si tu parles des deux cas: en passant par les web-service ou directement via l'objet ressource, sûr, je n'ai pas de préférence. Mais nécessiter de configurer d'abord une instance de passerelle à mon avis ça limitera drastiquement les cas où quelqu'un reviendra les lancer, ou bien on prévoit aussi les deux donnant la possibilité de venir tester une instance déployé (genre en recette) ou directement depuis sa machine.

#7

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

Les deux cas, je parlais ton approche/la mienne, pas d'instance de connecteur/une vrai instance de connecteur.

'Limite drastique' n'exagérons rien, un connecteur ça prend 1 minutes à se créer, ça se garde sous le coude sans problème (en bonus on est souvent content d'aller voir les logs dans l'UI pour comprendre ce qui a merdé quand ça merde). Bref ce point ne me parait pas crucial.

#8

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

Avoir les tests via pytest, c'est pouvoir les faire tourner depuis jenkins, avec l'espoir d'être ainsi notifiés sur des changements d'API/comportement, plutôt qu'arriver des jours/semaines/mois plus tard à ce qu'on nous signale un problème, qu'on fasse tourner les tests, qu'on dise qu'ah oui, en effet, quelque chose a changé, mais qu'on ne puisse pas être plus précis que ça. (alors que pouvoir pointer du doigt l'application, au moment où elle fait un changement incompatible, met la responsabilité de son côté).

#9

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

(on peut en discuter à un autre moment et ailleurs, et se dire que mieux que rien, c'est déjà beaucoup, je ne veux pas bloquer ce ticket).

#10

Mis à jour par Serghei Mihai il y a plus de 5 ans

Je suis d'accord avec l'idée de Frédéric. A faire juste attention que certaines plateformes de webservice peuvent imposer une restriction d'accès par IP, et il faudrait pas que ces tests cassent les tests unitaires et les builds des paquets.

A discuter ailleurs certainement.

#11

Mis à jour par Serghei Mihai il y a plus de 5 ans

Emmanuel Cazenave a écrit :

Ça correspond plus à ce que ferait un forkflow, et permet de vérifier que ce que te renvoie les endpoints est bien formaté comme il faut pour être utilisable pour poser une réservation ...

Ok, en piochant au hasard des eventements, thèmes et rooms.

#12

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

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

Mis à jour par Serghei Mihai il y a environ 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit a57cb9e615d73767b1cb70b892292ace774b41da (origin/master, origin/HEAD)
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Fri Jan 18 15:11:59 2019 +0100

    vivaticket: add func tests (#29890)
#14

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
#15

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

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

Formats disponibles : Atom PDF