def test_cyberark_fetch_credentials(creds_name_to_fetch, expected_res, mocker): """ Given - Case A: Creds name to fetch credentials is 'name1' - Case B: No specific creds were asked in fetch credentials When - Running fetch-credentials process Then - Ensure that the credentials returned to demisto are: [(username1,password1,name1)] - Ensure that all credentials were returned to demisto: [(username1,password1,name1),(username2,password2,name2)] """ client = Client(server_url="https://api.cyberark.com/", use_ssl=False, proxy=False, app_id="app", folder="Root", safe="safe1", credentials_object="name1,name2", username="", password="", cert_text="", key_text="") mocker.patch.object(Client, 'get_credentials', side_effect=lambda name: LIST_CREDENTIALS_RAW[name]) mocker.patch.object(demisto, 'credentials') fetch_credentials(client, {'identifier': creds_name_to_fetch}) demisto.credentials.assert_called_with(expected_res)
def test_test_module_passes(creds_name_to_fetch, get_call_num, expected_res, mocker): """ Given - Case A: Creds name to fetch credentials is 'name1, name2' - Case B: No specific creds were asked in fetch credentials When - Running fetch-credentials process Then - Ensure that the credentials returned to demisto are: [(username1,password1,name1)] - Ensure that all credentials were returned to demisto: [(username1,password1,name1),(username2,password2,name2)] """ from CyberArkAIM_v2 import test_module client = Client(server_url="https://api.example.com/", use_ssl=False, proxy=False, app_id="app", folder="Root", safe="safe1", credentials_object=creds_name_to_fetch, username="", password="", cert_text="", key_text="") get_mock = mocker.patch.object(Client, 'get_credentials') res = test_module(client) assert get_mock.call_count == get_call_num assert res == expected_res
def test_cyberark_aim_commands(command, get_credentials_res, context, mocker): """Unit test Given - raw response of the http request When - mock the http request result Then - create the context - validate the expected_result and the created context - make sure the key "Content" that contains the password doesn't appear in content or raw_response """ client = Client(server_url="https://api.cyberark.com/", use_ssl=False, proxy=False, app_id="app", folder="Root", safe="safe1", credentials_object="name1,name2", username="", password="", cert_text="", key_text="") mocker.patch.object(Client, 'get_credentials', side_effect=lambda name: get_credentials_res[name]) outputs = command(client) results = outputs.to_context() assert results.get("EntryContext") == context assert not results.get("EntryContext")[ 'CyberArkAIM(val.Name && val.Name == obj.Name)'][0].get("Content") assert not results.get("Contents")[0].get("Content")