Projet

Général

Profil

Bug #42187

Ne pas faire dépendre les tests ProxyLogger d'un connecteur spécifique.

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
28 avril 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Comme on envisage de rendre l'envoie des SMS asynchrone, on ne peut plus se baser sur un tel connecteur pour tester les éléments logués (en particulier extra['body'] qui me pose problème).
Dans les faits, lorsqu'une erreur est détectée dans les Jobs, ils ont perdu la connaissance du body de la requête initiale.

(Reformulation)
Lors d'un appel défaillant au endpoint d'un connecteur SMS il y a 3
nouvelle entrées dans les logs :
  • la requête initiale de l'utilisateur
  • l'envoie du SMS par le connecteur
  • un message d'erreur
    Ce dernier log n'hérite pas du même context si l'envoie du SMS est différé :

Initialement passerelle/utils/jsonresponse.py:

    def api(self, f, req, *args, **kwargs):
        logger = self.logger or logging.getLogger('passerelle.jsonresponse')
        try:
            resp = f(*args, **kwargs)
...
        except Exception as e:
...
            if req.method == 'POST':
...
                extras.update({'body': repr(req.body[:max_size])})
...
        logger.exception("Error occurred while processing request", extra=extras)

Via les Jobs avec passerelle/base/models.py :

    def handle_job_error(self, job, exc_info):
...
        self.logger.error('error running %s job (%s)',
            job.method_name,
            exception_to_text(exc_value),
            exc_info=exc_info)


Fichiers


Demandes liées

Lié à Passerelle - Development #36596: paramétrer LOGGED_REQUEST_MAX_SIZE via l'UI de log des connecteursFermé01 octobre 2019

Actions
Lié à Passerelle - Development #21465: connecteurs SMS : file pour envois asynchronesFermé29 janvier 2018

Actions
Lié à Passerelle - Bug #42368: Corriger un test qui plante aléatoirementFermé01 mai 2020

Actions

Révisions associées

Révision 9a3d589d (diff)
Ajouté par Nicolas Roche il y a environ 4 ans

tests: move requests/responses log sizes test (#42187)

Historique

#1

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

  • Lié à Development #36596: paramétrer LOGGED_REQUEST_MAX_SIZE via l'UI de log des connecteurs ajouté
#2

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

#3

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

#6

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

  • Statut changé de Solution proposée à Solution validée
    URL = 'http://example.org'

tu peux changer ça en whatever.invalid, comme ça on est sûr que ça foire si jamais le mock n'a pas lieu et qu'example.org répond en 200.

#7

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 9a3d589d207114dcd34019e2d750919aa53474dd
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Tue Apr 28 16:13:32 2020 +0200

    tests: move requests/responses log sizes test (#42187)
#8

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

  • Lié à Bug #42368: Corriger un test qui plante aléatoirement ajouté
#9

Mis à jour par Frédéric Péters il y a presque 4 ans

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

Formats disponibles : Atom PDF