Ejemplo n.º 1
0
    def test_from_enum_collisions(self):
        """Make sure that an exception gets thrown if we try to create an enum
        via from_enum but there are collisions in the requested values."""
        BASE = Enum('CAR', 'BIKE', SCOOTER = 5)

        # Try to create new enums but with numerical values that already exist
        # in the base enum. This should cause an exception.
        with self.assertRaises(ValueError):
            NEW = Enum.from_enum(BASE, AIRPLANE = 1)

        with self.assertRaises(ValueError):
            NEW3 = Enum.from_enum(BASE, AIRPLANE = 0)

        with self.assertRaises(ValueError):
            NEW4 = Enum.from_enum(BASE, AIRPLANE = 5)

        with self.assertRaises(ValueError):
            NEW5 = Enum.from_enum(BASE, 'TRAIN', AIRPLANE = 5)

        # Try to create new enums but with names that already exist in the base
        # enum (though with different numerical values). This should cause an
        # exception.
        with self.assertRaises(ValueError):
            NEW6 = Enum.from_enum(BASE, 'CAR')

        with self.assertRaises(ValueError):
            NEW7 = Enum.from_enum(BASE, BIKE = 11)
Ejemplo n.º 2
0
    def test_from_enum(self):
        BASE = Enum('DOG', CAT = 3, HORSE = 5)
        NEW = Enum.from_enum(BASE, 'HAMSTER', 'RAT', 'MOUSE', SNAKE = 6,
                DONKEY = 11)

        self.assertEqual(NEW.DOG, 0)
        self.assertEqual(NEW.HAMSTER, 1)
        self.assertEqual(NEW.RAT, 2)
        self.assertEqual(NEW.CAT, 3)
        self.assertEqual(NEW.MOUSE, 4)
        self.assertEqual(NEW.HORSE, 5)
        self.assertEqual(NEW.SNAKE, 6)
        self.assertEqual(NEW.DONKEY, 11)