Добавлены тесты для CoreEnum
This commit is contained in:
@@ -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}'")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user