mirror of
https://github.com/graphql-python/graphene.git
synced 2024-11-25 11:03:58 +03:00
Fixed Meta included in Enum members. Fixed #685
This commit is contained in:
parent
d6df14923d
commit
2594cdb614
|
@ -27,7 +27,11 @@ class EnumOptions(BaseOptions):
|
||||||
class EnumMeta(SubclassWithMeta_Meta):
|
class EnumMeta(SubclassWithMeta_Meta):
|
||||||
|
|
||||||
def __new__(cls, name, bases, classdict, **options):
|
def __new__(cls, name, bases, classdict, **options):
|
||||||
enum = PyEnum(cls.__name__, OrderedDict(classdict, __eq__=eq_enum))
|
enum_members = OrderedDict(classdict, __eq__=eq_enum)
|
||||||
|
# We remove the Meta attribute from the class to not collide
|
||||||
|
# with the enum values.
|
||||||
|
enum_members.pop('Meta', None)
|
||||||
|
enum = PyEnum(cls.__name__, enum_members)
|
||||||
return SubclassWithMeta_Meta.__new__(cls, name, bases, OrderedDict(classdict, __enum__=enum), **options)
|
return SubclassWithMeta_Meta.__new__(cls, name, bases, OrderedDict(classdict, __enum__=enum), **options)
|
||||||
|
|
||||||
def get(cls, value):
|
def get(cls, value):
|
||||||
|
|
|
@ -80,7 +80,8 @@ def test_enum_from_builtin_enum_accepts_lambda_description():
|
||||||
return 'meh' if value == Episode.NEWHOPE else None
|
return 'meh' if value == Episode.NEWHOPE else None
|
||||||
|
|
||||||
PyEpisode = PyEnum('PyEpisode', 'NEWHOPE,EMPIRE,JEDI')
|
PyEpisode = PyEnum('PyEpisode', 'NEWHOPE,EMPIRE,JEDI')
|
||||||
Episode = Enum.from_enum(PyEpisode, description=custom_description, deprecation_reason=custom_deprecation_reason)
|
Episode = Enum.from_enum(PyEpisode, description=custom_description,
|
||||||
|
deprecation_reason=custom_deprecation_reason)
|
||||||
|
|
||||||
class Query(ObjectType):
|
class Query(ObjectType):
|
||||||
foo = Episode()
|
foo = Episode()
|
||||||
|
@ -214,3 +215,19 @@ def test_enum_to_enum_comparison_should_differ():
|
||||||
assert RGB1.RED != RGB2.RED
|
assert RGB1.RED != RGB2.RED
|
||||||
assert RGB1.GREEN != RGB2.GREEN
|
assert RGB1.GREEN != RGB2.GREEN
|
||||||
assert RGB1.BLUE != RGB2.BLUE
|
assert RGB1.BLUE != RGB2.BLUE
|
||||||
|
|
||||||
|
|
||||||
|
def test_enum_skip_meta_from_members():
|
||||||
|
class RGB1(Enum):
|
||||||
|
class Meta:
|
||||||
|
name = 'RGB'
|
||||||
|
|
||||||
|
RED = 1
|
||||||
|
GREEN = 2
|
||||||
|
BLUE = 3
|
||||||
|
|
||||||
|
assert dict(RGB1._meta.enum.__members__) == {
|
||||||
|
'RED': RGB1.RED,
|
||||||
|
'GREEN': RGB1.GREEN,
|
||||||
|
'BLUE': RGB1.BLUE,
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user