## What is the expected behavior? I expect the following code to always succeed. It succeeds in simple scripts. But in a larger code base it fails: ```python class Kind(graphene.Enum): INTERMEDIATE_FAVORABLE = "intermediate_favorable" assert Kind.INTERMEDIATE_FAVORABLE == "intermediate_favorable" ``` ## Version - Version: graphene-3.3 - Platform: cpython 3.11.4, macos ventura 13.5.1 (M1) ## Other information The cause of the bug is here: https://github.com/graphql-python/graphene/blob/master/graphene/types/enum.py#L12 Equivalent strings are not guaranteed to have the same id. ```python def eq_enum(self, other): if isinstance(other, self.__class__): return self is other return self.value is other ``` There's a one-line bug fix: ```python def eq_enum(self, other): if isinstance(other, self.__class__): return self is other return self.value == other ``` And I suppose maybe an optimization: ```python def eq_enum(self, other): if isinstance(other, self.__class__): return self is other return self.value is other or self.value == other ```
Activity
Use equality instead of identity for enum value comparison