def testRepr(self): enum1 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'bar'}) enum2 = Enum('enum', [('foo', 1), ('bar', 7), ('baz', 7)], multiKeys=True) enum3 = Enum('enum', [('foo', 1), ('baz', 7), ('bar', 7)], multiKeys=True) enum4 = Enum('enum', ['foo', 'bar', 'baz']) # test that the reprs give us back the same thing enum5 = eval(repr(enum1), {'Enum': Enum}) self.assertEqual(enum1, enum5) self.assertEqual(enum5[7], 'bar') enum6 = eval(repr(enum2), {'Enum': Enum}) self.assertEqual(enum2, enum6) self.assertEqual(enum6[7], 'bar') enum7 = eval(repr(enum3), {'Enum': Enum}) self.assertEqual(enum3, enum7) self.assertEqual(enum7[7], 'baz') enum8 = eval(repr(enum4), {'Enum': Enum}) self.assertEqual(enum4, enum8) self.assertEqual(enum8[2], 'baz')
def testConstructionMethods(self): enum1 = Enum('enum', {'Red': 0, 'Green': 1, 'Blue': 2}) enum2 = Enum('enum', ('Red', 'Green', 'Blue')) enum3 = Enum('enum', [('Green', 1), ('Blue', 2), ('Red', 0)]) self.assertEqual(enum1, enum2) self.assertEqual(enum1, enum3) self.assertEqual(enum2, enum3)
def testConstructionMultiKeys(self): enum1 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'bar'}) enum2 = Enum('enum', [('foo', 1), ('bar', 7), ('baz', 7)], multiKeys=True) enum3 = Enum('enum', [('foo', 1), ('baz', 7), ('bar', 7)], multiKeys=True) self.assertEqual(enum1, enum2) self.assertEqual(enum1[7], 'bar') self.assertEqual(enum2[7], 'bar') self.assertNotEqual(enum1, enum3) self.assertNotEqual(enum2, enum3) self.assertEqual(enum3[7], 'baz')
def testHash(self): enum1 = Enum('enum', {'foo': 1, 'bar': 7}) enum2 = Enum('enum', {'foo': 1, 'bar': 7}) enum3 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'bar'}) enum4 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'bar'}) enum5 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'baz'}) enum6 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'baz'}) self.assertEqual(hash(enum1), hash(enum2)) self.assertIsNot(enum1, enum2) self.assertEqual(hash(enum1), hash(enum1)) self.assertNotEqual(hash(enum1), hash(enum3)) self.assertNotEqual(hash(enum1), hash(enum4)) self.assertNotEqual(hash(enum1), hash(enum5)) self.assertNotEqual(hash(enum1), hash(enum6)) self.assertEqual(hash(enum3), hash(enum4)) self.assertIsNot(enum3, enum4) self.assertNotEqual(hash(enum3), hash(enum1)) self.assertNotEqual(hash(enum3), hash(enum2)) self.assertNotEqual(hash(enum3), hash(enum5)) self.assertNotEqual(hash(enum3), hash(enum6)) self.assertEqual(hash(enum5), hash(enum6)) self.assertIsNot(enum5, enum6) self.assertNotEqual(hash(enum5), hash(enum1)) self.assertNotEqual(hash(enum5), hash(enum2)) self.assertNotEqual(hash(enum5), hash(enum3)) self.assertNotEqual(hash(enum5), hash(enum4)) self.assertEqual(len({enum1, enum2, enum3, enum4, enum5, enum6}), 3)
def testEquality(self): enum1 = Enum('enum', {'foo': 1, 'bar': 7}) enum2 = Enum('enum', {'foo': 1, 'bar': 7}) enum3 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'bar'}) enum4 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'bar'}) enum5 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'baz'}) enum6 = Enum('enum', { 'foo': 1, 'bar': 7, 'baz': 7 }, multiKeys=True, defaultKeys={7: 'baz'}) self.assertEqual(enum1, enum2) self.assertIsNot(enum1, enum2) self.assertEqual(enum1, enum1) self.assertNotEqual(enum1, enum3) self.assertNotEqual(enum1, enum4) self.assertNotEqual(enum1, enum5) self.assertNotEqual(enum1, enum6) self.assertEqual(enum3, enum4) self.assertIsNot(enum3, enum4) self.assertNotEqual(enum3, enum1) self.assertNotEqual(enum3, enum2) self.assertNotEqual(enum3, enum5) self.assertNotEqual(enum3, enum6) self.assertEqual(enum5, enum6) self.assertIsNot(enum5, enum6) self.assertNotEqual(enum5, enum1) self.assertNotEqual(enum5, enum2) self.assertNotEqual(enum5, enum3) self.assertNotEqual(enum5, enum4)