Skip to content

Commit

Permalink
Enrichir la réponse validata
Browse files Browse the repository at this point in the history
  • Loading branch information
raphodn committed Jan 30, 2025
1 parent 17f5f79 commit 5ef3aa0
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 17 deletions.
12 changes: 5 additions & 7 deletions api/tests/test_import_purchases.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,16 +142,14 @@ def test_import_bad_purchases(self):
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(Purchase.objects.count(), 0)
errors = response.json()["errors"]
self.assertEqual(errors.pop(0)["message"], "Champ 'siret' : Le siret de la cantine ne peut pas être vide")
self.assertEqual(errors.pop(0)["message"], "Une valeur doit être renseignée")
self.assertEqual(
errors.pop(0)["message"], "Une cantine avec le siret « 86180597100897 » n'existe pas sur la plateforme."
)
self.assertEqual(errors.pop(0)["message"], "Vous n'êtes pas un gestionnaire de cette cantine.")
self.assertEqual(
errors.pop(0)["message"], "Champ 'description du produit' : La description ne peut pas être vide"
)
self.assertEqual(errors.pop(0)["message"], "Champ 'fournisseur' : Le fournisseur ne peut pas être vide")
self.assertEqual(errors.pop(0)["message"], "Champ 'date' : La date ne peut pas être vide")
self.assertEqual(errors.pop(0)["message"], "Une valeur doit être renseignée")
self.assertEqual(errors.pop(0)["message"], "Une valeur doit être renseignée")
self.assertEqual(errors.pop(0)["message"], "Une valeur doit être renseignée")
self.assertEqual(
errors.pop(0)["message"],
"Champ 'date' : Le format de date de la valeur «\xa02022-02-31\xa0» est correct (AAAA-MM-JJ), mais la date n’est pas valide.",
Expand All @@ -160,7 +158,7 @@ def test_import_bad_purchases(self):
errors.pop(0)["message"],
"Champ 'date' : Le format de date de la valeur «\xa02022/03/01\xa0» n’est pas valide. Le format correct est AAAA-MM-JJ.",
)
self.assertEqual(errors.pop(0)["message"], "Champ 'prix HT' : Le prix ne peut pas être vide")
self.assertEqual(errors.pop(0)["message"], "Une valeur doit être renseignée")
self.assertEqual(
errors.pop(0)["message"], "Champ 'prix HT' : La valeur «\xa0A price\xa0» doit être un nombre décimal."
)
Expand Down
9 changes: 0 additions & 9 deletions api/views/purchaseimport.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,18 +185,9 @@ def _create_purchase_for_canteen(self, siret, row):
raise PermissionDenied(detail="Vous n'êtes pas un gestionnaire de cette cantine.")

description = row.pop(0)
if description == "":
raise ValidationError({"description": "La description ne peut pas être vide"})
provider = row.pop(0)
if provider == "":
raise ValidationError({"provider": "Le fournisseur ne peut pas être vide"})
date = row.pop(0)
if date == "":
raise ValidationError({"date": "La date ne peut pas être vide"})

price = row.pop(0).strip().replace(",", ".")
if price == "":
raise ValidationError({"price_ht": "Le prix ne peut pas être vide"})

# We try to round the price. If we can't, we will let Django's field validation
# manage the error - hence the `pass` in the exception handler
Expand Down
4 changes: 3 additions & 1 deletion common/api/validata.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ def process_errors(report):
{
"row": error["rowNumber"],
"status": 400,
"message": f"Champ '{error['fieldName']}' : Valeur « {error['cell']} » : {error['message']}",
"column": error["fieldName"],
"cell": error["cell"],
"message": error["message"],
}
)
return errors

0 comments on commit 5ef3aa0

Please sign in to comment.