Skip to content

Commit

Permalink
Fix IntEnum for python 3.11 (#205)
Browse files Browse the repository at this point in the history
  • Loading branch information
Czaki authored Sep 23, 2023
1 parent 409d19e commit 830fe38
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
6 changes: 2 additions & 4 deletions src/superqt/combobox/_enum_combobox.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,8 @@

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:
Expand Down
15 changes: 14 additions & 1 deletion tests/test_enum_comb_box.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from enum import Enum
from enum import Enum, IntEnum

import pytest

Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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"]

0 comments on commit 830fe38

Please sign in to comment.