mirror of
https://github.com/graphql-python/graphene-django.git
synced 2025-05-14 21:03:47 +03:00
Adds documentation to CAMELCASE_ERRORS
setting (#689)
* Rename setting and add documentation * Add examples * Use `cls`
This commit is contained in:
parent
aa30750d39
commit
0988e0798a
|
@ -101,3 +101,42 @@ Default: ``100``
|
||||||
GRAPHENE = {
|
GRAPHENE = {
|
||||||
'RELAY_CONNECTION_MAX_LIMIT': 100,
|
'RELAY_CONNECTION_MAX_LIMIT': 100,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
``CAMELCASE_ERRORS``
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
When set to ``True`` field names in the ``errors`` object will be camel case.
|
||||||
|
By default they will be snake case.
|
||||||
|
|
||||||
|
Default: ``False``
|
||||||
|
|
||||||
|
.. code:: python
|
||||||
|
|
||||||
|
GRAPHENE = {
|
||||||
|
'CAMELCASE_ERRORS': False,
|
||||||
|
}
|
||||||
|
|
||||||
|
# result = schema.execute(...)
|
||||||
|
print(result.errors)
|
||||||
|
# [
|
||||||
|
# {
|
||||||
|
# 'field': 'test_field',
|
||||||
|
# 'messages': ['This field is required.'],
|
||||||
|
# }
|
||||||
|
# ]
|
||||||
|
|
||||||
|
.. code:: python
|
||||||
|
|
||||||
|
GRAPHENE = {
|
||||||
|
'CAMELCASE_ERRORS': True,
|
||||||
|
}
|
||||||
|
|
||||||
|
# result = schema.execute(...)
|
||||||
|
print(result.errors)
|
||||||
|
# [
|
||||||
|
# {
|
||||||
|
# 'field': 'testField',
|
||||||
|
# 'messages': ['This field is required.'],
|
||||||
|
# }
|
||||||
|
# ]
|
||||||
|
|
|
@ -53,10 +53,10 @@ def test_mutation_error_camelcased():
|
||||||
|
|
||||||
result = PetMutation.mutate_and_get_payload(None, None)
|
result = PetMutation.mutate_and_get_payload(None, None)
|
||||||
assert {f.field for f in result.errors} == {"name", "age", "test_field"}
|
assert {f.field for f in result.errors} == {"name", "age", "test_field"}
|
||||||
graphene_settings.DJANGO_GRAPHENE_CAMELCASE_ERRORS = True
|
graphene_settings.CAMELCASE_ERRORS = True
|
||||||
result = PetMutation.mutate_and_get_payload(None, None)
|
result = PetMutation.mutate_and_get_payload(None, None)
|
||||||
assert {f.field for f in result.errors} == {"name", "age", "testField"}
|
assert {f.field for f in result.errors} == {"name", "age", "testField"}
|
||||||
graphene_settings.DJANGO_GRAPHENE_CAMELCASE_ERRORS = False
|
graphene_settings.CAMELCASE_ERRORS = False
|
||||||
|
|
||||||
|
|
||||||
class ModelFormMutationTests(TestCase):
|
class ModelFormMutationTests(TestCase):
|
||||||
|
|
|
@ -215,10 +215,10 @@ def test_model_mutate_and_get_payload_error():
|
||||||
|
|
||||||
|
|
||||||
def test_mutation_error_camelcased():
|
def test_mutation_error_camelcased():
|
||||||
graphene_settings.DJANGO_GRAPHENE_CAMELCASE_ERRORS = True
|
graphene_settings.CAMELCASE_ERRORS = True
|
||||||
result = MyModelMutation.mutate_and_get_payload(None, mock_info(), **{})
|
result = MyModelMutation.mutate_and_get_payload(None, mock_info(), **{})
|
||||||
assert result.errors[0].field == "coolName"
|
assert result.errors[0].field == "coolName"
|
||||||
graphene_settings.DJANGO_GRAPHENE_CAMELCASE_ERRORS = False
|
graphene_settings.CAMELCASE_ERRORS = False
|
||||||
|
|
||||||
|
|
||||||
def test_invalid_serializer_operations():
|
def test_invalid_serializer_operations():
|
||||||
|
|
|
@ -35,7 +35,7 @@ DEFAULTS = {
|
||||||
"RELAY_CONNECTION_ENFORCE_FIRST_OR_LAST": False,
|
"RELAY_CONNECTION_ENFORCE_FIRST_OR_LAST": False,
|
||||||
# Max items returned in ConnectionFields / FilterConnectionFields
|
# Max items returned in ConnectionFields / FilterConnectionFields
|
||||||
"RELAY_CONNECTION_MAX_LIMIT": 100,
|
"RELAY_CONNECTION_MAX_LIMIT": 100,
|
||||||
"DJANGO_GRAPHENE_CAMELCASE_ERRORS": False,
|
"CAMELCASE_ERRORS": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
|
|
|
@ -191,9 +191,5 @@ class ErrorType(ObjectType):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_errors(cls, errors):
|
def from_errors(cls, errors):
|
||||||
data = (
|
data = camelize(errors) if graphene_settings.CAMELCASE_ERRORS else errors
|
||||||
camelize(errors)
|
return [cls(field=key, messages=value) for key, value in data.items()]
|
||||||
if graphene_settings.DJANGO_GRAPHENE_CAMELCASE_ERRORS
|
|
||||||
else errors
|
|
||||||
)
|
|
||||||
return [ErrorType(field=key, messages=value) for key, value in data.items()]
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user