Пример #1
0
    def test_dynamic_enum(self):
        FooEnum = Enum('FooEnum')
        FooEnum.add_item(Item(10, 'a', "Item A"))
        FooEnum.add_item(Item(20, 'b', "Item B"))

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.A.slug, 'a')
        self.assertEqual(FooEnum.B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'a')
Пример #2
0
    def test_dynamic_enum(self):
        FooEnum = Enum('FooEnum')
        FooEnum.add_item(Item(10, 'a', "Item A"))
        FooEnum.add_item(Item(20, 'b', "Item B"))

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.A.slug, 'a')
        self.assertEqual(FooEnum.B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'a')
Пример #3
0
    def test_instance_based_enum(self):
        FooEnum = Enum(
            'FooEnum',
            Item(10, 'a', "Item A"),
            Item(20, 'b', "Item B"),
        )

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.A.slug, 'a')
        self.assertEqual(FooEnum.B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'a')
Пример #4
0
    def test_instance_based_enum(self):
        FooEnum = Enum(
            'FooEnum',
            Item(10, 'a', "Item A"),
            Item(20, 'b', "Item B"),
        )

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.A.slug, 'a')
        self.assertEqual(FooEnum.B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'a')
Пример #5
0
    def test_simple_registry_enum(self):
        FooEnum = Enum('FooEnum')

        class A(Item):
            __enum__ = FooEnum

            value = 10
            display = "Item A"

        class B(Item):
            __enum__ = FooEnum

            value = 20
            display = "Item B"

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.A.slug, 'A')
        self.assertEqual(FooEnum.B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'A')
Пример #6
0
    def test_simple_registry_enum(self):
        FooEnum = Enum('FooEnum')

        class A(Item):
            __enum__ = FooEnum

            value = 10
            display = "Item A"

        class B(Item):
            __enum__ = FooEnum

            value = 20
            display = "Item B"

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.A.slug, 'A')
        self.assertEqual(FooEnum.B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'A')
Пример #7
0
    def setUp(self):
        super(EnumTests, self).setUp()

        FooEnum = Enum(
            'FooEnum',
            Item(10, 'a', "Item A"),
            Item(20, 'b', "Item B"),
        )

        LargeEnum = Enum(
            'LargeEnum',
            Item(10, 'item_a', "Item A"),
            Item(20, 'item_b', "Item B"),
            Item(30, 'item_c', "Item C"),
            Item(40, 'item_d', "Item D"),
            Item(50, 'item_e', "Item E"),
        )

        self.enum = FooEnum
        self.large_enum = LargeEnum
Пример #8
0
    def test_simple_registry_enum_with_explicit_slugs(self):
        FooEnum = Enum('FooEnum')

        class A(Item):
            __enum__ = FooEnum

            value = 10
            slug = 'item_a'
            display = "Item A"

        class B(Item):
            __enum__ = FooEnum

            value = 20
            slug = 'item_b'
            display = "Item B"

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.ITEM_A.slug, 'item_a')
        self.assertEqual(FooEnum.ITEM_B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'item_a')
Пример #9
0
    def test_simple_registry_enum_with_explicit_slugs(self):
        FooEnum = Enum('FooEnum')

        class A(Item):
            __enum__ = FooEnum

            value = 10
            slug = 'item_a'
            display = "Item A"

        class B(Item):
            __enum__ = FooEnum

            value = 20
            slug = 'item_b'
            display = "Item B"

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.ITEM_A.slug, 'item_a')
        self.assertEqual(FooEnum.ITEM_B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'item_a')
Пример #10
0
    def test_registry_without_parent(self):
        FooEnum = Enum('FooEnum')

        class FooEnumItem(Item):
            __enum__ = FooEnum

            def display_extended(self):
                return "%s (%s)" % (self.display, self.value)

        class A(FooEnumItem):
            value = 10
            display = "Item A"

        class B(FooEnumItem):
            value = 20
            display = "Item B"

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.A.slug, 'A')
        self.assertEqual(FooEnum.B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'A')

        self.assertEqual(FooEnum.A.display_extended(), "Item A (10)")
Пример #11
0
    def test_registry_without_parent(self):
        FooEnum = Enum('FooEnum')

        class FooEnumItem(Item):
            __enum__ = FooEnum

            def display_extended(self):
                return "%s (%s)" % (self.display, self.value)

        class A(FooEnumItem):
            value = 10
            display = "Item A"

        class B(FooEnumItem):
            value = 20
            display = "Item B"

        self.assertEqual(len(FooEnum), 2)
        self.assertEqual(FooEnum.A.slug, 'A')
        self.assertEqual(FooEnum.B.display, "Item B")
        self.assertEqual(FooEnum.from_value(10).slug, 'A')

        self.assertEqual(FooEnum.A.display_extended(), "Item A (10)")
Пример #12
0
    def test_slug_missing_with_explicit_slugs_s(self):
        FooEnum = Enum('FooEnum')

        # Should be able to create helpers which have neither slug nor value
        class FooItem(Item):
            __enum__ = FooEnum

        self.assertEqual(len(FooEnum), 0)

        with self.assertRaises(TypeError) as cm:

            class BadItem(Item):
                __enum__ = FooEnum

                value = 20
                display = "Item B"

        self.assertEqual(
            "'BadItem' class must have a slug attribute",
            str(cm.exception),
            "Wrong error message for missing slug",
        )

        self.assertEqual(len(FooEnum), 0)
Пример #13
0
from django_enumfield import Enum, Item

SecurityEventEnum = Enum(
    'SecurityEventEnum',
    Item(10, 'possible_replay_attack', "An expired HMAC was used"),
    Item(20, 'useragent', "An incorrect useragent accessed the API"),
    Item(30, 'sentry_ipspoof', "An incorrect IP used the Sentry useragent"),
    Item(40, 'gameip_missmatch',
         "An incorrect IP accessed the game server API"),
    Item(50, 'no_body', "A request was received with no body"),
    Item(60, 'associated_reverse_engineer',
         "An account was marked as an RE by association"),
    Item(70, 'alt_detected',
         "An account was detected as an alternate account"),
    Item(80, 'invalid_data', "Invalid data was sent to the server"))
Пример #14
0
    def test_dynamic_enum_rejects_duplicate_value(self):
        FooEnum = Enum('FooEnum')
        FooEnum.add_item(Item(10, 'a', "Item A"))

        with self.assertRaises(ValueError):
            FooEnum.add_item(Item(10, 'b', "Item B"))
Пример #15
0
from django_enumfield import Enum, Item


ConsultationStateEnum = Enum('ConsultationStateEnum',
    Item(10, 'open', 'Open consultation'),
    Item(20, 'closed', 'Closed consultation'),
    Item(30, 'outcome', 'Consultation outcome'),
)
Пример #16
0
    def test_dynamic_enum_rejects_duplicate_slug(self):
        FooEnum = Enum('FooEnum')
        FooEnum.add_item(Item(10, 'a', "Item A"))

        with self.assertRaises(ValueError):
            FooEnum.add_item(Item(20, 'a', "Item B"))