From e929d5cd8412f3805837b25ee5a65728a66fd6b3 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 7 May 2024 13:56:32 -0700 Subject: [PATCH] Fix: make backend monetary validation accept unpadded decimals --- src/documents/serialisers.py | 2 +- src/documents/tests/test_api_custom_fields.py | 16 ---------------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index b3eace7c9..213e3cc27 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -547,7 +547,7 @@ class CustomFieldInstanceSerializer(serializers.ModelSerializer): except Exception: # If that fails, try to validate as a monetary string RegexValidator( - regex=r"^[A-Z]{3}-?\d+(\.\d{2,2})$", + regex=r"^[A-Z]{3}-?\d+(\.\d{1,2})$", message="Must be a two-decimal number with optional currency code e.g. GBP123.45", )(data["value"]) elif field.data_type == CustomField.FieldDataType.STRING: diff --git a/src/documents/tests/test_api_custom_fields.py b/src/documents/tests/test_api_custom_fields.py index 2885d9071..0b2f99b35 100644 --- a/src/documents/tests/test_api_custom_fields.py +++ b/src/documents/tests/test_api_custom_fields.py @@ -499,22 +499,6 @@ class TestCustomFieldsAPI(DirectoriesMixin, APITestCase): self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST) - resp = self.client.patch( - f"/api/documents/{doc.id}/", - data={ - "custom_fields": [ - { - "field": custom_field_money.id, - # Too few places past decimal - "value": "GBP12.1", - }, - ], - }, - format="json", - ) - - self.assertEqual(resp.status_code, status.HTTP_400_BAD_REQUEST) - resp = self.client.patch( f"/api/documents/{doc.id}/", data={