mirror of
https://github.com/graphql-python/graphene.git
synced 2025-03-05 04:15:47 +03:00
Fields default_value are no longer dismissed. Fixed #702.
This commit is contained in:
parent
05d7e61b84
commit
9408ba70d1
|
@ -81,7 +81,10 @@ class ObjectType(BaseType):
|
||||||
|
|
||||||
for name, field in fields_iter:
|
for name, field in fields_iter:
|
||||||
try:
|
try:
|
||||||
val = kwargs.pop(name, None)
|
val = kwargs.pop(
|
||||||
|
name,
|
||||||
|
field.default_value if isinstance(field, Field) else None
|
||||||
|
)
|
||||||
setattr(self, name, val)
|
setattr(self, name, val)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -9,9 +9,9 @@ from ..inputfield import InputField
|
||||||
from ..inputobjecttype import InputObjectType
|
from ..inputobjecttype import InputObjectType
|
||||||
from ..interface import Interface
|
from ..interface import Interface
|
||||||
from ..objecttype import ObjectType
|
from ..objecttype import ObjectType
|
||||||
from ..scalars import Int, String
|
from ..scalars import Int, String, Boolean
|
||||||
from ..schema import Schema
|
from ..schema import Schema
|
||||||
from ..structures import List
|
from ..structures import List, NonNull
|
||||||
from ..union import Union
|
from ..union import Union
|
||||||
from ..context import Context
|
from ..context import Context
|
||||||
|
|
||||||
|
@ -475,3 +475,23 @@ def test_query_annotated_resolvers():
|
||||||
result = test_schema.execute('{ info }', "base")
|
result = test_schema.execute('{ info }', "base")
|
||||||
assert not result.errors
|
assert not result.errors
|
||||||
assert result.data == {'info': 'base-info'}
|
assert result.data == {'info': 'base-info'}
|
||||||
|
|
||||||
|
|
||||||
|
def test_default_as_kwarg_to_NonNull():
|
||||||
|
# Related to https://github.com/graphql-python/graphene/issues/702
|
||||||
|
class User(ObjectType):
|
||||||
|
name = String()
|
||||||
|
is_admin = NonNull(Boolean, default_value=False)
|
||||||
|
|
||||||
|
class Query(ObjectType):
|
||||||
|
user = Field(User)
|
||||||
|
|
||||||
|
def resolve_user(self, *args, **kwargs):
|
||||||
|
return User(name="foo")
|
||||||
|
|
||||||
|
schema = Schema(query=Query)
|
||||||
|
expected = {'user': {'name': 'foo', 'isAdmin': False}}
|
||||||
|
result = schema.execute("{ user { name isAdmin } }")
|
||||||
|
|
||||||
|
assert not result.errors
|
||||||
|
assert result.data == expected
|
||||||
|
|
Loading…
Reference in New Issue
Block a user