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)
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)