]
-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())
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")
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"])