diff options
Diffstat (limited to 'src/software/test/test_software_identity_resource.py')
-rwxr-xr-x | src/software/test/test_software_identity_resource.py | 47 |
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( |