From d8c90787085a0f40b95222fc07ea031ac671b65e Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Sun, 15 Nov 2020 19:34:00 +0100 Subject: [PATCH] Add EnumE.get_name() --- app/models.py | 8 ++++++++ tests/test_models.py | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/app/models.py b/app/models.py index 5cf0631c..e4b1f751 100644 --- a/app/models.py +++ b/app/models.py @@ -112,6 +112,14 @@ class EnumE(enum.Enum): def has_value(cls, value: int) -> bool: return value in set(item.value for item in cls) + @classmethod + def get_name(cls, value: int): + for item in cls: + if item.value == value: + return item.name + + return None + class PlanEnum(EnumE): monthly = 2 diff --git a/tests/test_models.py b/tests/test_models.py index 25932687..b4a97e79 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -12,6 +12,7 @@ from app.models import ( Mailbox, AliasMailbox, SenderFormatEnum, + EnumE, ) @@ -197,3 +198,16 @@ def test_mailbox_delete(flask_client): Mailbox.delete(m1.id) alias = Alias.get(alias.id) assert len(alias.mailboxes) == 2 + + +def test_EnumE(): + class E(EnumE): + A = 100 + B = 200 + + assert E.has_value(100) + assert not E.has_value(101) + + assert E.get_name(100) == "A" + assert E.get_name(200) == "B" + assert E.get_name(101) is None