graphql-python / graphql-python/graphene

Cannot use an enum as a graphene.List named argument

Open
#1,166 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
8.2k
Forks
818
PR merge metrics
No merged PRs in 30d

Description

When defining this query:
```
class Episode(graphene.Enum):
NEWHOPE = 4
EMPIRE = 5
JEDI = 6

class ListAvailableSubscriptionPlans(graphene.ObjectType):

available_subscription_plans = graphene.List(
graphene.NonNull(graphql.SubscriptionPlanObject),
subscriber_id=graphene.Int(required=True),
subscriber_type=Episode,
target_currency=graphene.String(required=True),
)

def resolve_available_subscription_plans(
self, info, subscriber_id, subscriber_type, target_currency
):
```
And running the python module, we get the error:
```
File "/app/subscription_management/subscriptions/api.py", line 16, in
class ListAvailableSubscriptionPlans(graphene.ObjectType):
File "/app/virtualenv/lib/python3.8/site-packages/graphene/utils/subclass_with_meta.py", line 52, in __init_subclass__
super_class.__init_subclass_with_meta__(**options)
File "/app/virtualenv/lib/python3.8/site-packages/graphene/types/objecttype.py", line 112, in __init_subclass_with_meta__
fields.update(yank_fields_from_attrs(base.__dict__, _as=Field))
File "/app/virtualenv/lib/python3.8/site-packages/graphene/types/utils.py", line 31, in yank_fields_from_attrs
field = get_field_as(value, _as)
File "/app/virtualenv/lib/python3.8/site-packages/graphene/types/utils.py", line 21, in get_field_as
return _as.mounted(value)
File "/app/virtualenv/lib/python3.8/site-packages/graphene/types/mountedtype.py", line 15, in mounted
return cls(
File "/app/virtualenv/lib/python3.8/site-packages/graphene/types/field.py", line 103, in __init__
self.args = to_arguments(args or OrderedDict(), extra_args)
File "/app/virtualenv/lib/python3.8/site-packages/graphene/types/argument.py", line 80, in to_arguments
extra_args = sorted(extra_args.items(), key=lambda f: f[1])
TypeError: '<' not supported between instances of 'EnumMeta' and 'Int'
```
Because this line does not work:
**subscriber_type=Episode**

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.