Exemple #1
0
    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')
Exemple #2
0
    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)
Exemple #3
0
 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')
Exemple #4
0
    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)
Exemple #5
0
    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)