Bug #21245
wscall dont une erreur va vers un status inexistant, envoie la demande vers ce statut
0%
Description
test écrit rapidement qui passe sans soucis
1674 item = WebserviceCallStatusItem() 1675 item.url = 'http://remote.example.net/500' 1676 item.action_on_5xx = '42biboo' # jump to n'importe quoi 1677 item.post = False 1678 with pytest.raises(AbortActionException): 1679 item.perform(formdata) 1680 assert formdata.status == 'wf-42biboo'
Autrement dit, si un appel webservice échoue et que l'échec est configuré pour aller vers un statut qui n'existe plus, hé bien la demande se retrouve dans ce statut inexistant, aïe.
Je proposerais de faire à la place un :stop et de logger une exception...
Fichiers
Révisions associées
Historique
Mis à jour par Thomas Noël il y a plus de 6 ans
- Fichier 0001-wscall-act-as-stop-if-target-status-no-longer-exists.patch 0001-wscall-act-as-stop-if-target-status-no-longer-exists.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus de 6 ans
Je comprends le try/raise again comme étant là pour améliorer le message qui sera visible dans la trace, c'est bien ça ?
Pour vérifier l'existence, simplemen self.parent.parent.get_status(status_id) (ça raise KeyError).
J'hésitais sur la présence du nom du workflow dans le message, considérant que le workflow associé se retrouverait de toute façon visible sur la page de la trace, mais comme tu le sens.
Mis à jour par Thomas Noël il y a plus de 6 ans
- Fichier 0001-wscall-act-as-stop-if-target-status-no-longer-exists.patch 0001-wscall-act-as-stop-if-target-status-no-longer-exists.patch ajouté
Frédéric Péters a écrit :
Je comprends le try/raise again comme étant là pour améliorer le message qui sera visible dans la trace, c'est bien ça ?
J'hésitais sur la présence du nom du workflow dans le message, considérant que le workflow associé se retrouverait de toute façon visible sur la page de la trace, mais comme tu le sens.
Oui, ça sera dans la page de trace, mais je pense aux exceptions par mail dans leur forme brute actuelle (qu'on devrait aussi clarifier sur le même procédé que la page de trace, de fait ; mais en attendant, voilà). Si tu penses que c'est vraiment trop alambiqué je peux retirer, je suis pas sûr que cette erreur arrive si souvent.
Pour vérifier l'existence, simplemen self.parent.parent.get_status(status_id) (ça raise KeyError).
Modifié dans ce patch.
Mis à jour par Thomas Noël il y a plus de 6 ans
- Statut changé de En cours à Résolu (à déployer)
commit 69612df2bf754b773bf8d219bf9b5a3963abedd4 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Thu Jan 18 02:59:52 2018 +0100 wscall: act as stop if target status no longer exists (#21245)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
wscall: act as stop if target status no longer exists (#21245)