Fix IntEnum for python 3.11 (#205)

This commit is contained in:
Grzegorz Bokota
2023-09-24 00:23:39 +02:00
committed by GitHub
parent 409d19e5c2
commit 830fe38fb9
2 changed files with 16 additions and 5 deletions

View File

@@ -12,10 +12,8 @@ NONE_STRING = "----"
def _get_name(enum_value: Enum):
"""Create human readable name if user does not implement `__str__`."""
if (
enum_value.__str__.__module__ != "enum"
and not enum_value.__str__.__module__.startswith("shibokensupport")
):
str_module = getattr(enum_value.__str__, "__module__", "enum")
if str_module != "enum" and not str_module.startswith("shibokensupport"):
# check if function was overloaded
name = str(enum_value)
else:

View File

@@ -1,4 +1,4 @@
from enum import Enum
from enum import Enum, IntEnum
import pytest
@@ -36,6 +36,12 @@ class Enum4(Enum):
c_3 = 3
class IntEnum1(IntEnum):
a = 1
b = 2
c = 5
def test_simple_create(qtbot):
enum = QEnumComboBox(enum_class=Enum1)
qtbot.addWidget(enum)
@@ -129,3 +135,10 @@ def test_optional(qtbot):
enum.setCurrentEnum(None)
assert enum.currentText() == NONE_STRING
assert enum.currentEnum() is None
def test_simple_create_int_enum(qtbot):
enum = QEnumComboBox(enum_class=IntEnum1)
qtbot.addWidget(enum)
assert enum.count() == 3
assert [enum.itemText(i) for i in range(enum.count())] == ["a", "b", "c"]