mirror of
https://github.com/graphql-python/graphene.git
synced 2025-03-04 20:05:48 +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:
|
||||
try:
|
||||
val = kwargs.pop(name, None)
|
||||
val = kwargs.pop(
|
||||
name,
|
||||
field.default_value if isinstance(field, Field) else None
|
||||
)
|
||||
setattr(self, name, val)
|
||||
except KeyError:
|
||||
pass
|
||||
|
|
|
@ -9,9 +9,9 @@ from ..inputfield import InputField
|
|||
from ..inputobjecttype import InputObjectType
|
||||
from ..interface import Interface
|
||||
from ..objecttype import ObjectType
|
||||
from ..scalars import Int, String
|
||||
from ..scalars import Int, String, Boolean
|
||||
from ..schema import Schema
|
||||
from ..structures import List
|
||||
from ..structures import List, NonNull
|
||||
from ..union import Union
|
||||
from ..context import Context
|
||||
|
||||
|
@ -475,3 +475,23 @@ def test_query_annotated_resolvers():
|
|||
result = test_schema.execute('{ info }', "base")
|
||||
assert not result.errors
|
||||
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