Добавлены тесты для CoreEnum

This commit is contained in:
2026-07-19 23:52:34 +03:00
parent a25b34ab3f
commit 785bf1ba29
10 changed files with 622 additions and 1 deletions

View File

@@ -24,6 +24,7 @@ class CoreEnum(StrEnum):
:return: Список для выбора значения
"""
cls._check_is_empty()
return [(item.value, item.name) for item in cls]
@classmethod
@@ -34,6 +35,7 @@ class CoreEnum(StrEnum):
:return: Список ключей
"""
cls._check_is_empty()
return [item.name for item in cls]
@classmethod
@@ -44,4 +46,34 @@ class CoreEnum(StrEnum):
:return: Список значений
"""
return [item.value for item in cls]
cls._check_is_empty()
return [item.value for item in cls.__members__.values()]
@classmethod
def _check_is_empty(cls):
"""
Проверяет, что перечисление не пустое
:return: True, если перечисление не пустое
"""
count = len(cls)
if count == 0:
raise ValueError(f"The {cls.__name__} enum must not be empty.")
@classmethod
def from_string(cls, value: str) -> CoreEnum:
"""
Возвращает перечисление по строковому значению
:param value: Строковое значение
:return: Перечисление
"""
for item in cls:
if item.value == value:
return item
raise ValueError(f"The {cls.__name__} enum does not contain the value '{value}'")