Development #13379
Renvoyer 404 sur /api/formdefs/xxx/ où xx est inconnu
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
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
- Fichier 0001-api-return-404-on-access-to-an-unknown-formdef-13379.patch 0001-api-return-404-on-access-to-an-unknown-formdef-13379.patch ajouté
- Patch proposed changé de Non à Oui
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.
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.
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
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)
api: return 404 on access to an unknown formdef (#13379)