Commit dbc96028 authored by Michael Hanselmann's avatar Michael Hanselmann
Browse files

Improve tests for OP_ID



… by detecting duplicates.
Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
Reviewed-by: default avatarIustin Pop <iustin@google.com>
parent 0bff0b12
......@@ -1234,6 +1234,15 @@ class OpTestDummy(OpCode):
]
OP_MAPPING = dict([(v.OP_ID, v) for v in globals().values()
if (isinstance(v, type) and issubclass(v, OpCode) and
hasattr(v, "OP_ID"))])
def _GetOpList():
"""Returns list of all defined opcodes.
Does not eliminate duplicates by C{OP_ID}.
"""
return [v for v in globals().values()
if (isinstance(v, type) and issubclass(v, OpCode) and
hasattr(v, "OP_ID"))]
OP_MAPPING = dict((v.OP_ID, v) for v in _GetOpList())
......@@ -41,6 +41,7 @@ class TestOpcodes(unittest.TestCase):
for cls in opcodes.OP_MAPPING.values():
self.assert_(cls.OP_ID.startswith("OP_"))
self.assert_(len(cls.OP_ID) > 3)
self.assertEqual(cls.OP_ID, cls.OP_ID.upper())
self.assertRaises(TypeError, cls, unsupported_parameter="some value")
......@@ -84,6 +85,11 @@ class TestOpcodes(unittest.TestCase):
else:
self.assertEqual("OP_%s" % summary, op.OP_ID)
def testOpId(self):
self.assertFalse(utils.FindDuplicates(cls.OP_ID
for cls in opcodes._GetOpList()))
self.assertEqual(len(opcodes._GetOpList()), len(opcodes.OP_MAPPING))
def testParams(self):
supported_by_all = set(["debug_level", "dry_run", "priority"])
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment