1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
8 # pylint: disable=F0401
9 import sample_import_mojom
10 import sample_service_mojom
13 class EnumBindingsTest(unittest.TestCase):
15 # Testing enum classes are in the right module.
17 self.assertEquals(sample_import_mojom.Shape.__module__,
18 'sample_import_mojom')
20 # Testing that enum class have expected constant values.
21 def testTopLevelEnumGeneration(self):
22 self.assertEquals(sample_import_mojom.Shape.RECTANGLE, 1)
23 self.assertEquals(sample_import_mojom.Shape.CIRCLE, 2)
24 self.assertEquals(sample_import_mojom.Shape.TRIANGLE, 3)
25 self.assertEquals(sample_import_mojom.Shape.LAST,
26 sample_import_mojom.Shape.TRIANGLE)
28 self.assertEquals(sample_import_mojom.AnotherShape.RECTANGLE, 10)
29 self.assertEquals(sample_import_mojom.AnotherShape.CIRCLE, 11)
30 self.assertEquals(sample_import_mojom.AnotherShape.TRIANGLE, 12)
32 self.assertEquals(sample_import_mojom.YetAnotherShape.RECTANGLE, 20)
33 self.assertEquals(sample_import_mojom.YetAnotherShape.CIRCLE, 21)
34 self.assertEquals(sample_import_mojom.YetAnotherShape.TRIANGLE, 22)
36 # Testing that internal enum class have expected constant values.
37 def testInternalEnumGeneration(self):
38 self.assertEquals(sample_service_mojom.Bar.Type.VERTICAL, 1)
39 self.assertEquals(sample_service_mojom.Bar.Type.HORIZONTAL, 2)
40 self.assertEquals(sample_service_mojom.Bar.Type.BOTH, 3)
41 self.assertEquals(sample_service_mojom.Bar.Type.INVALID, 4)
43 # Testing an enum class cannot be instantiated.
44 def testNonInstantiableEnum(self):
45 with self.assertRaises(TypeError):
46 sample_import_mojom.Shape()
48 # Testing an enum does not contain the VALUES constant.
49 def testNoVALUESConstant(self):
50 with self.assertRaises(AttributeError):
51 # pylint: disable=W0104
52 sample_import_mojom.Shape.VALUES
54 # Testing enum values are frozen.
55 def testEnumFrozen(self):
56 with self.assertRaises(AttributeError):
57 sample_import_mojom.Shape.RECTANGLE = 2
58 with self.assertRaises(AttributeError):
59 del sample_import_mojom.Shape.RECTANGLE
60 with self.assertRaises(AttributeError):
61 sample_import_mojom.Shape.NewShape = 4