Make Graphene enums iterable like Python enums

This commit is contained in:
Rens Groothuijsen 2022-11-12 22:16:47 +01:00 committed by Erik Wrede
parent f891a3683d
commit 88fe5c2ea1
2 changed files with 16 additions and 0 deletions

View File

@ -0,0 +1,13 @@
from graphene.types.enum import Enum
def test_enum_iteration():
class TestEnum(Enum):
FIRST = 1
SECOND = 2
result = []
expected_values = ["FIRST", "SECOND"]
for c in TestEnum:
result.append(c.name)
assert result == expected_values

View File

@ -56,6 +56,9 @@ class EnumMeta(SubclassWithMeta_Meta):
return super(EnumMeta, cls).__call__(*args, **kwargs) return super(EnumMeta, cls).__call__(*args, **kwargs)
# return cls._meta.enum(*args, **kwargs) # return cls._meta.enum(*args, **kwargs)
def __iter__(cls):
return cls._meta.enum.__iter__()
def from_enum( def from_enum(
cls, enum, name=None, description=None, deprecation_reason=None cls, enum, name=None, description=None, deprecation_reason=None
): # noqa: N805 ): # noqa: N805