Make sure that there is an environment variable for each parameter
with the correct value.

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

diff --git a/test/py/ganeti.backend_unittest.py 
b/test/py/ganeti.backend_unittest.py
index 1f05197..dcb4933 100755
--- a/test/py/ganeti.backend_unittest.py
+++ b/test/py/ganeti.backend_unittest.py
@@ -44,9 +44,9 @@ from ganeti import hypervisor
 from ganeti import netutils
 from ganeti import objects
 from ganeti import pathutils
+from ganeti import serializer
 from ganeti import utils
 
-
 class TestX509Certificates(unittest.TestCase):
   def setUp(self):
     self.tmpdir = tempfile.mkdtemp()
@@ -948,5 +948,43 @@ class TestSpaceReportingConstants(unittest.TestCase):
       self.assertEqual(None, backend._STORAGE_TYPE_INFO_FN[storage_type])
 
 
+class TestOSEnvironment(unittest.TestCase):
+  """Ensures presence of public and private parameters inside
+  os environment variables"""
+
+  def _create_env(self):
+    """Creates and returns an environment"""
+    inst = objects.Instance(name="test.example.com",
+                            uuid="test-uuid",
+                            disks=[], nics=[],
+                            disks_info="",
+                            disk_template=constants.DT_DISKLESS,
+                            primary_node="node.example.com",
+                            os="debian-image",
+                            osparams={"public_param": "public_info"},
+                            osparams_private=
+                            serializer.PrivateDict({"private_param":
+                                                   "private_info"}),
+                            secondary_nodes=[],
+                            beparams={},
+                            hvparams={})
+
+    # supply required os attributes in a mock object
+    os_mock = mock.Mock()
+    os_mock.api_versions = [15]
+    os_mock.supported_variants = [""]
+
+    return backend.OSEnvironment(inst, os_mock)
+
+  def testParamPresence(self):
+    env = self._create_env()
+    self.assertTrue('OSP_PUBLIC_PARAM' in env)
+    self.assertTrue('OSP_PRIVATE_PARAM' in env)
+
+  def testParamValues(self):
+    env = self._create_env()
+    self.assertEqual(env['OSP_PUBLIC_PARAM'], "public_info")
+    self.assertEqual(env['OSP_PRIVATE_PARAM'], "private_info")
+
 if __name__ == "__main__":
   testutils.GanetiTestProgram()
-- 
2.2.0.rc0.207.ga3a616c

Reply via email to