Projet

Général

Profil

Development #13379

Renvoyer 404 sur /api/formdefs/xxx/ où xx est inconnu

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
Début:
30 septembre 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Exception:
  type = '<type 'exceptions.KeyError'>', value = ''

Stack trace (most recent call first):
  File "/usr/lib/python2.7/dist-packages/wcs/qommon/storage.py", line 370, in get_filename
   368             if ignore_errors:
   369                 return None
>  370             raise KeyError()
   371         except ImportError as e:
   372             if ignore_errors:

  locals: 
     ignore_errors = False
     ignore_migration = False
     cls = <class 'wcs.formdef.FormDef'>
     filename = '/var/lib/wcs-au-quotidien/montpellier.eservices.montpellier3m.fr/formdefs-url_name/incident-sur-le-reseau-d-eaux-usee'

  File "/usr/lib/python2.7/dist-packages/wcs/qommon/storage.py", line 330, in get_on_index
   328         filename = os.path.join(index_dir, str(fix_key(id)))
   329         return cls.get_filename(filename, ignore_errors=ignore_errors,
>  330                 ignore_migration=ignore_migration)
   331 
   332     @classmethod

  locals: 
     index_dir = '/var/lib/wcs-au-quotidien/montpellier.eservices.montpellier3m.fr/formdefs-url_name'
     ignore_migration = False
     index = 'url_name'
     filename = '/var/lib/wcs-au-quotidien/montpellier.eservices.montpellier3m.fr/formdefs-url_name/incident-sur-le-reseau-d-eaux-usee'
     objects_dir = '/var/lib/wcs-au-quotidien/montpellier.eservices.montpellier3m.fr/formdefs'
     ignore_errors = False
     id = 'incident-sur-le-reseau-d-eaux-usee'
     cls = <class 'wcs.formdef.FormDef'>

  File "/usr/lib/python2.7/dist-packages/wcs/formdef.py", line 409, in get_by_urlname
   407     @classmethod
   408     def get_by_urlname(cls, url_name, ignore_migration=False):
>  409         return cls.get_on_index(url_name, 'url_name', ignore_migration=ignore_migration)
   410 
   411     def get_url(self, backoffice=False, preview=False):

  locals: 
     url_name = 'incident-sur-le-reseau-d-eaux-usee'
     ignore_migration = False
     cls = <class 'wcs.formdef.FormDef'>

  File "/usr/lib/python2.7/dist-packages/wcs/api.py", line 344, in _q_lookup
   342 
   343     def _q_lookup(self, component):
>  344         return ApiFormdefDirectory(FormDef.get_by_urlname(component))
   345 
   346 

  locals: 
     self = <wcs.api.ApiFormdefsDirectory object at 0x7fb94129cb50>
     component = 'incident-sur-le-reseau-d-eaux-usee'

Fichiers

Révisions associées

Révision 7fa3757a (diff)
Ajouté par Benjamin Dauvergne il y a plus de 7 ans

api: return 404 on access to an unknown formdef (#13379)

Historique

#2

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

  • Statut changé de Nouveau à En cours

Ce n'est pas uniforme pour le moment mais je préfère la forme courte, try: return ApiFormdefDirectory(FormDef.get_by_urlname(component)) except KeyError: ..., ou alors faire sauter le else: et mettre le return hors du bloc.

Et ajouter un test bidon qui tape au mauvais endroit.

#3

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

Je préférerai largement ne pas inutilement cacher au passage une KeyError dans le code de ApiFormdefDirectory, je ne vois vraiment pas l'intérêt de gagner une ligne ici; je veux bien par contre virer le else par souci de style.

#4

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

ok pour juste virer le else.

#6

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

  • Statut changé de En cours à Résolu (à déployer)
commit 7fa3757a2cbb0f6f62dcdae5c00f9dbbbffafc4c
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Sep 30 13:54:55 2016 +0200

    api: return 404 on access to an unknown formdef (#13379)
#7

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

  • Version cible mis à v1.61
#8

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

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

Formats disponibles : Atom PDF