def test_module_command_VirtualMediaEject_pass(self): set_module_args({ 'category': 'Manager', 'command': 'VirtualMediaEject', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', 'timeout': 30, 'virtual_media': { 'image_url': "nfs://10.245.52.18:/home/nfs/bootable-sr635-20210111-autorun.iso", } }) with patch.object( module.XCCRedfishUtils, '_find_managers_resource') as mock__find_managers_resource: mock__find_managers_resource.return_value = { 'ret': True, 'changed': True, 'msg': 'success' } with patch.object( module.XCCRedfishUtils, 'virtual_media_eject') as mock_virtual_media_eject: mock_virtual_media_eject.return_value = { 'ret': True, 'changed': True, 'msg': 'success' } with self.assertRaises(AnsibleExitJson) as result: module.main()
def test_module_command_PostResource_fail_when_get_return_false(self): set_module_args({ 'category': 'Raw', 'command': 'PostResource', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', 'resource_uri': '/redfish/v1/Systems/1/Bios/Actions/Bios.ChangePassword', 'request_body': { 'PasswordName': 'UefiAdminPassword', 'NewPassword': '******' } }) with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request: mock_get_request.return_value = {'ret': False, 'msg': '404 error'} with patch.object(module.XCCRedfishUtils, 'post_request') as mock_post_request: mock_post_request.return_value = {'ret': True} with self.assertRaises(AnsibleFailJson) as result: module.main()
def test_module_command_PatchResource_pass(self): set_module_args({ 'category': 'Raw', 'command': 'PatchResource', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', 'resource_uri': '/redfish/v1/testuri', 'request_body': { 'teststr': 'yyyy' } }) with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request: mock_get_request.return_value = { 'ret': True, 'data': { 'teststr': 'xxxx', '@odata.etag': '27f6eb13fa1c28a2711' } } with patch.object(module.XCCRedfishUtils, 'patch_request') as mock_patch_request: mock_patch_request.return_value = { 'ret': True, 'data': { 'teststr': 'yyyy', '@odata.etag': '322e0d45d9572723c98' } } with self.assertRaises(AnsibleExitJson) as result: module.main()
def test_module_command_PatchResource_fail_when_required_args_missing( self): set_module_args({ 'category': 'Raw', 'command': 'PatchResource', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', }) with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request: mock_get_request.return_value = { 'ret': True, 'data': { 'teststr': 'xxxx', '@odata.etag': '27f6eb13fa1c28a2711' } } with patch.object(module.XCCRedfishUtils, 'patch_request') as mock_patch_request: mock_patch_request.return_value = { 'ret': True, 'data': { 'teststr': 'xxxx' } } with self.assertRaises(AnsibleFailJson) as result: module.main()
def test_module_command_GetCollectionResource_pass_when_get_collection( self): set_module_args({ 'category': 'Raw', 'command': 'GetCollectionResource', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', 'resource_uri': '/redfish/v1/testuri', }) with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request: mock_get_request.return_value = { 'ret': True, 'data': { 'Members': [{ '@odata.id': '/redfish/v1/testuri/1' }], '*****@*****.**': 1 } } with self.assertRaises(AnsibleExitJson) as result: module.main()
def test_module_fail_when_unknown_command(self): with self.assertRaises(AnsibleFailJson): set_module_args({ 'category': 'Manager', 'command': 'unknown', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', }) module.main()
def test_module_command_VirtualMediaEject_fail_when_required_args_missing(self): with self.assertRaises(AnsibleFailJson): set_module_args({ 'category': 'Manager', 'command': 'VirtualMediaEject', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', }) module.main()
def test_module_command_PostResource_fail_when_requestbody_mismatch_with_data_from_actioninfo_uri( self): set_module_args({ 'category': 'Raw', 'command': 'PostResource', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', 'resource_uri': '/redfish/v1/Systems/1/Bios/Actions/Bios.ChangePassword', 'request_body': { 'PasswordName': 'UefiAdminPassword', 'NewPassword': '******' } }) with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request: mock_get_request.return_value = { 'ret': True, 'data': { 'Parameters': [], 'Actions': { '#Bios.ChangePassword': { '@Redfish.ActionInfo': "/redfish/v1/Systems/1/Bios/ChangePasswordActionInfo", 'target': "/redfish/v1/Systems/1/Bios/Actions/Bios.ChangePassword", 'title': "ChangePassword", '*****@*****.**': ["UefiAdminPassword", "UefiPowerOnPassword"] }, '#Bios.ResetBios': { 'title': "ResetBios", 'target': "/redfish/v1/Systems/1/Bios/Actions/Bios.ResetBios" } }, } } with patch.object(module.XCCRedfishUtils, 'post_request') as mock_post_request: mock_post_request.return_value = {'ret': True} with self.assertRaises(AnsibleFailJson) as result: module.main()
def test_module_command_GetCollectionResource_fail_when_get_not_colection(self): set_module_args({ 'category': 'Raw', 'command': 'GetCollectionResource', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', 'resource_uri': '/redfish/v1/testuri', }) with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request: mock_get_request.return_value = {'ret': True, 'data': {'teststr': 'xxxx'}} with self.assertRaises(AnsibleFailJson) as result: module.main()
def test_module_command_GetResource_fail_when_get_return_false(self): set_module_args({ 'category': 'Raw', 'command': 'GetResource', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', 'resource_uri': '/redfish/v1/testuri', }) with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request: mock_get_request.return_value = {'ret': False, 'msg': '404 error'} with self.assertRaises(AnsibleFailJson) as result: module.main()
def test_module_command_PatchResource_fail_when_noexisting_property_in_requestbody(self): set_module_args({ 'category': 'Raw', 'command': 'PatchResource', 'baseuri': '10.245.39.251', 'username': '******', 'password': '******', 'resource_uri': '/redfish/v1/testuri', 'request_body': {'teststr': 'yyyy', 'otherkey': 'unknownkey'} }) with patch.object(module.XCCRedfishUtils, 'get_request') as mock_get_request: mock_get_request.return_value = {'ret': True, 'data': {'teststr': 'xxxx', '@odata.etag': '27f6eb13fa1c28a2711'}} with patch.object(module.XCCRedfishUtils, 'patch_request') as mock_patch_request: mock_patch_request.return_value = {'ret': True, 'data': {'teststr': 'xxxx'}} with self.assertRaises(AnsibleFailJson) as result: module.main()
def test_module_fail_when_required_args_missing(self): with self.assertRaises(AnsibleFailJson): set_module_args({}) module.main()