From 7e8f9d6de9c5f46bf44d589993d5ff35d5f78459 Mon Sep 17 00:00:00 2001 From: NyanKiyoshi Date: Thu, 2 May 2019 15:15:23 +0200 Subject: [PATCH] from_enum can now take a deprecation reason --- graphene/tests/issues/test_956.py | 8 ++++++++ graphene/types/enum.py | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 graphene/tests/issues/test_956.py diff --git a/graphene/tests/issues/test_956.py b/graphene/tests/issues/test_956.py new file mode 100644 index 00000000..72ff9713 --- /dev/null +++ b/graphene/tests/issues/test_956.py @@ -0,0 +1,8 @@ +import graphene + + +def test_issue(): + options = {"description": "This my enum", "deprecation_reason": "For the funs"} + new_enum = graphene.Enum("MyEnum", [("some", "data")], **options) + assert new_enum._meta.description == options["description"] + assert new_enum._meta.deprecation_reason == options["deprecation_reason"] diff --git a/graphene/types/enum.py b/graphene/types/enum.py index 6e6bab8f..7b8e71f5 100644 --- a/graphene/types/enum.py +++ b/graphene/types/enum.py @@ -46,7 +46,12 @@ class EnumMeta(SubclassWithMeta_Meta): def __call__(cls, *args, **kwargs): # noqa: N805 if cls is Enum: description = kwargs.pop("description", None) - return cls.from_enum(PyEnum(*args, **kwargs), description=description) + deprecation_reason = kwargs.pop("deprecation_reason", None) + return cls.from_enum( + PyEnum(*args, **kwargs), + description=description, + deprecation_reason=deprecation_reason, + ) return super(EnumMeta, cls).__call__(*args, **kwargs) # return cls._meta.enum(*args, **kwargs)