فهرست منبع

Add tests for ChoiceSet

Jeremy Stretch 6 سال پیش
والد
کامیت
cdecf93f00
1فایلهای تغییر یافته به همراه50 افزوده شده و 0 حذف شده
  1. 50 0
      netbox/utilities/tests/test_choices.py

+ 50 - 0
netbox/utilities/tests/test_choices.py

@@ -0,0 +1,50 @@
+from django.test import TestCase
+
+from utilities.choices import ChoiceSet
+
+
+class ExampleChoices(ChoiceSet):
+
+    CHOICE_A = 'a'
+    CHOICE_B = 'b'
+    CHOICE_C = 'c'
+    CHOICE_1 = 1
+    CHOICE_2 = 2
+    CHOICE_3 = 3
+    CHOICES = (
+        ('Letters', (
+            (CHOICE_A, 'A'),
+            (CHOICE_B, 'B'),
+            (CHOICE_C, 'C'),
+        )),
+        ('Digits', (
+            (CHOICE_1, 'One'),
+            (CHOICE_2, 'Two'),
+            (CHOICE_3, 'Three'),
+        )),
+    )
+    LEGACY_MAP = {
+        CHOICE_A: 101,
+        CHOICE_B: 102,
+        CHOICE_C: 103,
+        CHOICE_1: 201,
+        CHOICE_2: 202,
+        CHOICE_3: 203,
+    }
+
+
+class ChoiceSetTestCase(TestCase):
+
+    def test_values(self):
+        self.assertListEqual(ExampleChoices.values(), ['a', 'b', 'c', 1, 2, 3])
+
+    def test_as_dict(self):
+        self.assertEqual(ExampleChoices.as_dict(), {
+            'a': 'A', 'b': 'B', 'c': 'C', 1: 'One', 2: 'Two', 3: 'Three'
+        })
+
+    def test_slug_to_id(self):
+        self.assertEqual(ExampleChoices.slug_to_id('a'), 101)
+
+    def test_id_to_slug(self):
+        self.assertEqual(ExampleChoices.id_to_slug(101), 'a')