diff options
Diffstat (limited to 'Lib/test/test_enum.py')
| -rw-r--r-- | Lib/test/test_enum.py | 66 | 
1 files changed, 66 insertions, 0 deletions
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index dccaa4f..7d172c8 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -646,6 +646,23 @@ class TestEnum(unittest.TestCase):              self.assertIn(e, SummerMonth)              self.assertIs(type(e), SummerMonth) +    def test_programatic_function_string_with_start(self): +        SummerMonth = Enum('SummerMonth', 'june july august', start=10) +        lst = list(SummerMonth) +        self.assertEqual(len(lst), len(SummerMonth)) +        self.assertEqual(len(SummerMonth), 3, SummerMonth) +        self.assertEqual( +                [SummerMonth.june, SummerMonth.july, SummerMonth.august], +                lst, +                ) +        for i, month in enumerate('june july august'.split(), 10): +            e = SummerMonth(i) +            self.assertEqual(int(e.value), i) +            self.assertNotEqual(e, i) +            self.assertEqual(e.name, month) +            self.assertIn(e, SummerMonth) +            self.assertIs(type(e), SummerMonth) +      def test_programatic_function_string_list(self):          SummerMonth = Enum('SummerMonth', ['june', 'july', 'august'])          lst = list(SummerMonth) @@ -663,6 +680,23 @@ class TestEnum(unittest.TestCase):              self.assertIn(e, SummerMonth)              self.assertIs(type(e), SummerMonth) +    def test_programatic_function_string_list_with_start(self): +        SummerMonth = Enum('SummerMonth', ['june', 'july', 'august'], start=20) +        lst = list(SummerMonth) +        self.assertEqual(len(lst), len(SummerMonth)) +        self.assertEqual(len(SummerMonth), 3, SummerMonth) +        self.assertEqual( +                [SummerMonth.june, SummerMonth.july, SummerMonth.august], +                lst, +                ) +        for i, month in enumerate('june july august'.split(), 20): +            e = SummerMonth(i) +            self.assertEqual(int(e.value), i) +            self.assertNotEqual(e, i) +            self.assertEqual(e.name, month) +            self.assertIn(e, SummerMonth) +            self.assertIs(type(e), SummerMonth) +      def test_programatic_function_iterable(self):          SummerMonth = Enum(                  'SummerMonth', @@ -719,6 +753,22 @@ class TestEnum(unittest.TestCase):              self.assertIn(e, SummerMonth)              self.assertIs(type(e), SummerMonth) +    def test_programatic_function_type_with_start(self): +        SummerMonth = Enum('SummerMonth', 'june july august', type=int, start=30) +        lst = list(SummerMonth) +        self.assertEqual(len(lst), len(SummerMonth)) +        self.assertEqual(len(SummerMonth), 3, SummerMonth) +        self.assertEqual( +                [SummerMonth.june, SummerMonth.july, SummerMonth.august], +                lst, +                ) +        for i, month in enumerate('june july august'.split(), 30): +            e = SummerMonth(i) +            self.assertEqual(e, i) +            self.assertEqual(e.name, month) +            self.assertIn(e, SummerMonth) +            self.assertIs(type(e), SummerMonth) +      def test_programatic_function_type_from_subclass(self):          SummerMonth = IntEnum('SummerMonth', 'june july august')          lst = list(SummerMonth) @@ -735,6 +785,22 @@ class TestEnum(unittest.TestCase):              self.assertIn(e, SummerMonth)              self.assertIs(type(e), SummerMonth) +    def test_programatic_function_type_from_subclass_with_start(self): +        SummerMonth = IntEnum('SummerMonth', 'june july august', start=40) +        lst = list(SummerMonth) +        self.assertEqual(len(lst), len(SummerMonth)) +        self.assertEqual(len(SummerMonth), 3, SummerMonth) +        self.assertEqual( +                [SummerMonth.june, SummerMonth.july, SummerMonth.august], +                lst, +                ) +        for i, month in enumerate('june july august'.split(), 40): +            e = SummerMonth(i) +            self.assertEqual(e, i) +            self.assertEqual(e.name, month) +            self.assertIn(e, SummerMonth) +            self.assertIs(type(e), SummerMonth) +      def test_subclassing(self):          if isinstance(Name, Exception):              raise Name  | 
