mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-08 23:50:38 +03:00
Added support for Enum descriptions
This commit is contained in:
parent
9a9d7f8873
commit
568718d573
|
@ -22,7 +22,12 @@ class GrapheneEnumType(GrapheneGraphQLType, GraphQLEnumType):
|
||||||
def values_from_enum(enum):
|
def values_from_enum(enum):
|
||||||
_values = OrderedDict()
|
_values = OrderedDict()
|
||||||
for name, value in enum.__members__.items():
|
for name, value in enum.__members__.items():
|
||||||
_values[name] = GraphQLEnumValue(name=name, value=value.value)
|
_values[name] = GraphQLEnumValue(
|
||||||
|
name=name,
|
||||||
|
value=value.value,
|
||||||
|
description=getattr(value, 'description', None),
|
||||||
|
deprecation_reason=getattr(value, 'deprecation_reason', None)
|
||||||
|
)
|
||||||
return _values
|
return _values
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,10 @@ def test_enum_construction():
|
||||||
GREEN = 2
|
GREEN = 2
|
||||||
BLUE = 3
|
BLUE = 3
|
||||||
|
|
||||||
|
@property
|
||||||
|
def description(self):
|
||||||
|
return "Description {}".format(self.name)
|
||||||
|
|
||||||
assert isinstance(RGB._meta.graphql_type, GraphQLEnumType)
|
assert isinstance(RGB._meta.graphql_type, GraphQLEnumType)
|
||||||
values = RGB._meta.graphql_type.get_values()
|
values = RGB._meta.graphql_type.get_values()
|
||||||
assert sorted([v.name for v in values]) == [
|
assert sorted([v.name for v in values]) == [
|
||||||
|
@ -18,6 +22,11 @@ def test_enum_construction():
|
||||||
'GREEN',
|
'GREEN',
|
||||||
'RED'
|
'RED'
|
||||||
]
|
]
|
||||||
|
assert sorted([v.description for v in values]) == [
|
||||||
|
'Description BLUE',
|
||||||
|
'Description GREEN',
|
||||||
|
'Description RED'
|
||||||
|
]
|
||||||
assert isinstance(RGB(name='field_name').as_field(), Field)
|
assert isinstance(RGB(name='field_name').as_field(), Field)
|
||||||
assert isinstance(RGB(name='field_name').as_argument(), Argument)
|
assert isinstance(RGB(name='field_name').as_argument(), Argument)
|
||||||
|
|
||||||
|
|
|
@ -206,11 +206,8 @@ def test_objecttype_graphene_inherit_interface():
|
||||||
assert graphql_type.get_interfaces() == (GrapheneInterface._meta.graphql_type, )
|
assert graphql_type.get_interfaces() == (GrapheneInterface._meta.graphql_type, )
|
||||||
assert graphql_type.is_type_of(GrapheneObjectType(), None, None)
|
assert graphql_type.is_type_of(GrapheneObjectType(), None, None)
|
||||||
fields = graphql_type.get_fields()
|
fields = graphql_type.get_fields()
|
||||||
assert 'field' in fields
|
fields = graphql_type.get_fields().keys() == ['name', 'extended', 'field']
|
||||||
assert 'extended' in fields
|
|
||||||
assert 'name' in fields
|
|
||||||
assert issubclass(GrapheneObjectType, GrapheneInterface)
|
assert issubclass(GrapheneObjectType, GrapheneInterface)
|
||||||
assert fields['field'] > fields['extended'] > fields['name']
|
|
||||||
|
|
||||||
|
|
||||||
# def test_objecttype_graphene_interface_extended():
|
# def test_objecttype_graphene_interface_extended():
|
||||||
|
|
Loading…
Reference in New Issue
Block a user