mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-08 23:50:38 +03:00
Added support for deprecated fields using deprecation_reason. Fixed #93
This commit is contained in:
parent
6a38024340
commit
235a24e966
|
@ -18,7 +18,7 @@ class Field(NamedType, OrderedType):
|
|||
|
||||
def __init__(
|
||||
self, type, description=None, args=None, name=None, resolver=None,
|
||||
required=False, default=None, *args_list, **kwargs):
|
||||
required=False, default=None, deprecation_reason=None, *args_list, **kwargs):
|
||||
_creation_counter = kwargs.pop('_creation_counter', None)
|
||||
if isinstance(name, (Argument, ArgumentType)):
|
||||
kwargs['name'] = name
|
||||
|
@ -29,6 +29,7 @@ class Field(NamedType, OrderedType):
|
|||
self.required = required
|
||||
self.type = type
|
||||
self.description = description
|
||||
self.deprecation_reason = deprecation_reason
|
||||
args = OrderedDict(args or {}, **kwargs)
|
||||
self.arguments = ArgumentsGroup(*args_list, **args)
|
||||
self.object_type = None
|
||||
|
@ -103,6 +104,7 @@ class Field(NamedType, OrderedType):
|
|||
assert type, 'Internal type for field %s is None' % str(self)
|
||||
return GraphQLField(type, args=schema.T(arguments),
|
||||
resolver=self.decorate_resolver(resolver),
|
||||
deprecation_reason=self.deprecation_reason,
|
||||
description=description,)
|
||||
|
||||
def __repr__(self):
|
||||
|
|
|
@ -166,3 +166,17 @@ def test_field_resolve_vars():
|
|||
'hello': 'Hello Serkan'
|
||||
}
|
||||
assert result.data == expected
|
||||
|
||||
|
||||
def test_field_internal_type_deprecated():
|
||||
deprecation_reason = 'No more used'
|
||||
field = Field(String(), description='My argument',
|
||||
deprecation_reason=deprecation_reason)
|
||||
|
||||
class Query(ObjectType):
|
||||
my_field = field
|
||||
schema = Schema(query=Query)
|
||||
|
||||
type = schema.T(field)
|
||||
assert isinstance(type, GraphQLField)
|
||||
assert type.deprecation_reason == deprecation_reason
|
||||
|
|
Loading…
Reference in New Issue
Block a user