Test if OpPrereqError is raised only for redacted values.

Signed-off-by: Lisa Velden <[email protected]>
---
 test/py/ganeti.mcpu_unittest.py | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/test/py/ganeti.mcpu_unittest.py b/test/py/ganeti.mcpu_unittest.py
index 18fabd8..15a2505 100755
--- a/test/py/ganeti.mcpu_unittest.py
+++ b/test/py/ganeti.mcpu_unittest.py
@@ -35,10 +35,12 @@ import unittest
 import itertools
 
 from ganeti import compat
+from ganeti import errors
 from ganeti import mcpu
 from ganeti import opcodes
 from ganeti import cmdlib
 from ganeti import locking
+from ganeti import serializer
 from ganeti import constants
 from ganeti.constants import \
     LOCK_ATTEMPTS_TIMEOUT, \
@@ -176,5 +178,36 @@ class TestProcessResult(unittest.TestCase):
     self.assertEqual(op2.debug_level, 3)
 
 
+class TestSecretParams(unittest.TestCase):
+  def testSecretParamsCheckNoError(self):
+    src = opcodes.OpTestDummy()
+
+    try:
+      mcpu._CheckSecretParameters(src)
+    except errors.OpPrereqError:
+      self.fail("OpPrereqError raised unexpectedly in _CheckSecretParameters")
+
+  def testSecretParamsCheckWithError(self):
+    op = opcodes.OpInstanceCreate(
+      instance_name="plain.example.com",
+      pnode="master.example.com",
+      disk_template=constants.DT_PLAIN,
+      mode=constants.INSTANCE_CREATE,
+      nics=[{}],
+      disks=[{
+        constants.IDISK_SIZE: 1024
+      }],
+      osparams_secret= serializer.PrivateDict({"foo":"bar",
+                                              "secret_param":"<redacted>"}),
+      os_type="debian-image")
+
+    try:
+      mcpu._CheckSecretParameters(op)
+    except errors.OpPrereqError:
+      pass
+    else:
+      self.fail
+
+
 if __name__ == "__main__":
   testutils.GanetiTestProgram()
-- 
2.4.3.573.g4eafbef

Reply via email to