summaryrefslogtreecommitdiffstats
path: root/src/software/test/test_software_identity_resource.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/software/test/test_software_identity_resource.py')
-rwxr-xr-xsrc/software/test/test_software_identity_resource.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/software/test/test_software_identity_resource.py b/src/software/test/test_software_identity_resource.py
index 5c3c329..528c6c0 100755
--- a/src/software/test/test_software_identity_resource.py
+++ b/src/software/test/test_software_identity_resource.py
@@ -29,8 +29,10 @@ import socket
import time
import unittest
+from openlmi.software.core.IdentityResource import Values
import base
import repository
+import util
class TestSoftwareIdentityResource(
base.SoftwareBaseTestCase): #pylint: disable=R0904
@@ -198,6 +200,51 @@ class TestSoftwareIdentityResource(
self.assertIn(inst["Name"], repoids)
self._check_repo_instance(repoids[inst["Name"]], inst)
+ @base.mark_dangerous
+ def test_request_state_change(self):
+ """
+ Tests InvokeMethod on RequestStateChange().
+ """
+ for repo in self.repodb:
+ objpath = self.make_op(repo)
+ self.assertIs(repository.is_repo_enabled(repo), repo.status)
+
+ # change state of repository (enabled/disabled)
+ req_state = ( Values.RequestStateChange.RequestedState.Disabled
+ if repo.status else
+ Values.RequestStateChange.RequestedState.Enabled)
+ (res, oparms) = self.conn.InvokeMethod(
+ MethodName="RequestStateChange",
+ ObjectName=objpath,
+ RequestedState=req_state)
+ self.assertEqual(0, res) #Completed with no error
+ self.assertEqual(0, len(oparms))
+ inst = self.conn.GetInstance(InstanceName=objpath)
+ self.assertEqual(inst["EnabledState"], req_state)
+ for pkg in self.dangerous_pkgs:
+ if pkg.up_repo == repo:
+ pkg_iname = util.make_identity_path(pkg)
+ self.assertRaisesCIM(pywbem.CIM_ERR_NOT_FOUND,
+ self.conn.GetInstance, pkg_iname)
+
+ # revert back to original configuration
+ req_state = ( Values.RequestStateChange.RequestedState.Enabled
+ if repo.status else
+ Values.RequestStateChange.RequestedState.Disabled)
+ (res, oparms) = self.conn.InvokeMethod(
+ MethodName="RequestStateChange",
+ ObjectName=objpath,
+ RequestedState=req_state)
+ self.assertEqual(0, res) #Completed with no error
+ self.assertEqual(0, len(oparms))
+ inst = self.conn.GetInstance(InstanceName=objpath)
+ self.assertEqual(inst["EnabledState"], req_state)
+ for pkg in self.dangerous_pkgs:
+ if pkg.up_repo == repo:
+ pkg_iname = util.make_identity_path(pkg)
+ inst = self.conn.GetInstance(pkg_iname)
+ self.assertIsInstance(inst, pywbem.CIMInstance)
+
def suite():
"""For unittest loaders."""
return unittest.TestLoader().loadTestsFromTestCase(