diff --git a/graphene/types/decimal.py b/graphene/types/decimal.py index b2acbe7e7..056d199a8 100644 --- a/graphene/types/decimal.py +++ b/graphene/types/decimal.py @@ -28,6 +28,8 @@ def parse_literal(cls, node): @staticmethod def parse_value(value): + if value == "": + return None try: return _Decimal(value) except ValueError: diff --git a/graphene/types/tests/test_decimal.py b/graphene/types/tests/test_decimal.py index 9757e82ca..5829db0fe 100644 --- a/graphene/types/tests/test_decimal.py +++ b/graphene/types/tests/test_decimal.py @@ -49,3 +49,10 @@ def test_decimal_string_query_integer(): assert not result.errors assert result.data == {"decimal": str(decimal_value)} assert decimal.Decimal(result.data["decimal"]) == decimal_value + +def test_parse_decimal_empty_string(): + """Parsing an empty string should return None""" + result = schema.execute("""{ decimal(input: \"\") }""") + assert not result.errors + assert result.data == {"decimal": None} +