Add unit test for default parameter default values
authorMichael Hanselmann <hansmi@google.com>
Wed, 21 Nov 2012 03:52:06 +0000 (04:52 +0100)
committerMichael Hanselmann <hansmi@google.com>
Wed, 21 Nov 2012 06:21:06 +0000 (07:21 +0100)
Fails if the default value of an opcode parameter doesn't verify.

Signed-off-by: Michael Hanselmann <hansmi@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

test/ganeti.opcodes_unittest.py

index ebfeb08..a5e36d2 100755 (executable)
@@ -191,8 +191,16 @@ class TestOpcodes(unittest.TestCase):
         self.assertTrue(doc is None or isinstance(doc, basestring))
 
         if callable(aval):
-          self.assertFalse(callable(aval()),
+          default_value = aval()
+          self.assertFalse(callable(default_value),
                            msg="Default value returned by function is callable")
+        else:
+          default_value = aval
+
+        if aval is not ht.NoDefault and test is not ht.NoType:
+          self.assertTrue(test(default_value),
+                          msg=("Default value of '%s.%s' does not verify" %
+                               (cls.OP_ID, attr_name)))
 
       # If any parameter has documentation, all others need to have it as well
       has_doc = [doc is not None for (_, _, _, doc) in cls.OP_PARAMS]