Projet

Général

Profil

Bug #3912

Le décorateur to_json cache les exceptions

Ajouté par Benjamin Dauvergne il y a plus de 10 ans. Mis à jour il y a plus de 9 ans.

Statut:
Fermé
Priorité:
Normal
Version cible:
-
Début:
30 octobre 2013
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Planning:

Description

Il faudrait faire la différence entre des exceptions internes et externes, par défaut il faudrait renvoyer un traceback pour toute en plus du retour d'erreur JSON. Ã moins une extension locale de to_json ferait l'affaire.


Fichiers

display_traceback_by_default.patch (480 octets) display_traceback_by_default.patch Serghei Mihai (congés, retour 15/05), 30 octobre 2013 15:30
0001-customized-to_json-decorator-raises-specified-except.patch (1,5 ko) 0001-customized-to_json-decorator-raises-specified-except.patch Serghei Mihai (congés, retour 15/05), 29 novembre 2013 16:30

Révisions associées

Révision e96c90d2 (diff)
Ajouté par Serghei Mihai (congés, retour 15/05) il y a plus de 10 ans

act naturally if 'raise' parameter passed via GET

Closes #3912

Historique

#1

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 10 ans

Dans passerelle.utils je redéfinis to_json afin qu'il sérialize les datetime.
Je pense qu'en ajoutant la méthode api tu pourrais afficher les tracebacks

#3

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

  • Assigné à changé de Benjamin Dauvergne à Serghei Mihai (congés, retour 15/05)

Cool un volontaire :)

Mais raise ça fait un traceback ou ça log un traceback puis ça continue le traitement normalement ? Je veux juste le log pas que ça casse le retour json.

Mais bon c'est un début ce serait cool ensuite de pouvoir désigner une liste de classes qui doivent être ignorée et simplement renvoyé comme une erreur JSON, exemple ChoositError. Ça ferait:

@to_json('api', throws=(ChoositError,))
def view()
    ...
#4

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 10 ans

Par défaut ça n'affiche pas le traceback mais affiche juste le message de l'exception avec la clef "err": 1 dans le json. L'appli peut ainsi continuer de fonctionner.
Du coup le throws devait plutôt spécifier la liste des exceptions à raiser.

#5

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 10 ans

  • Fichier 0001-customized-to_json-decorator-raises-specified-except.patch ajouté

j'ai renommé l'argument proposant la liste d'exceptions à declencher en raise

#6

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 10 ans

  • Fichier 0001-customized-to_json-decorator-raises-specified-except.patch supprimé
#8

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 10 ans

  • Statut changé de Nouveau à Résolu (à déployer)
  • % réalisé changé de 0 à 100
#9

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

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF