def test_from_dict_list(self): """Test that the from_dict_list factory method works.""" E_NORMAL = Enum('DOG', 'CAT', HAMSTER = 1) E_FACTORY = Enum.from_dict_list({'HAMSTER': 1}, ['DOG', 'CAT']) self.assertEqual(E_FACTORY.DOG, E_NORMAL.DOG) self.assertEqual(E_FACTORY.CAT, E_NORMAL.CAT) self.assertEqual(E_FACTORY.HAMSTER, E_NORMAL.HAMSTER) self.assertEqual(E_FACTORY.numbers_list(), E_NORMAL.numbers_list()) for f, n in zip(E_FACTORY.values_generator(), E_NORMAL.values_generator()): self.assertEqual(f, n) # zip tries to handle generators that produce different numbers of items # so we double check that they're both the same size here. self.assertEqual(len([x for x in E_FACTORY.values_generator()]), len([x for x in E_NORMAL.values_generator()]))
def test_generate_string(self): """Test the values_generator method.""" ANIMALS = Enum('DOG', 'CAT', 'WOLF', HAMSTER=0, RABBIT=2, WHALE=100) expected = ['HAMSTER', 'DOG', 'RABBIT', 'CAT', 'WOLF', 'WHALE'] expected_index = 0 for val in ANIMALS.values_generator(): self.assertEqual(val, expected[expected_index]) expected_index += 1