diff --git a/tests/resources/common/basicRequests.robot b/tests/resources/common/basicRequests.robot index 6d4f4569592e1685ec9b72554b9849f368db0082..40ee878789064531615c4bdff70da7cdab2fc49d 100644 --- a/tests/resources/common/basicRequests.robot +++ b/tests/resources/common/basicRequests.robot @@ -139,6 +139,12 @@ Get Request Admin Register ... cert=${cert} RETURN ${resp} +Delete User Admin Register Request + [Arguments] ${user_uuid} + ${headers}= Create Register Admin Session ${CAPIF_HTTPS_REGISTER_URL} verify=False + ${resp}= DELETE On Session register_session /deleteUser/${user_uuid} headers=${headers} + RETURN ${resp} + # NEW REQUESTS END Post Request Capif @@ -435,9 +441,7 @@ Delete User At Register ${user_uuid}= Call Method ${CAPIF_USERS} get_user_uuid ${username} END - ${headers}= Create Register Admin Session ${CAPIF_HTTPS_REGISTER_URL} verify=False - - ${resp}= DELETE On Session register_session /deleteUser/${user_uuid} headers=${headers} + ${resp}= Delete User Admin Register Request ${user_uuid} Should Be Equal As Strings ${resp.status_code} 204 @@ -445,7 +449,7 @@ Delete User At Register RETURN ${resp} -Get List of User At Register +Get List of Users At Register [Documentation] (Administrator) This Keyword retrieve a list of users from register. ${headers}= Create Register Admin Session ${CAPIF_HTTPS_REGISTER_URL} verify=False @@ -455,6 +459,24 @@ Get List of User At Register RETURN ${resp.json()['users']} +Get User Uuid At Register + [Documentation] (Administrator) This Keyword retrieve a list of users and search uuid of user passed by parameters + [Arguments] ${username} + ${users}= Get List of Users At Register + + # Find the first user with username indicated + ${user}= Evaluate [item for item in ${users} if item['username'] == ${username}][0] modules=collections + + ${user_uuid}= Set Variable + IF ${user} == &{EMPTY} + Log ${username} not found in Register + ELSE + ${user_uuid}= Set Variable ${user['uuid']} + END + + RETURN ${user_uuid} + + Get Auth For User [Documentation] (User) This Keyword retrieve token to be used by user towards first interaction with CCF. [Arguments] ${username} ${password} diff --git a/tests/tasks/Users Management/__init__.robot b/tests/tasks/Users Management/__init__.robot new file mode 100644 index 0000000000000000000000000000000000000000..f2cd44ef13c3838e8196b6fa8cdacbf2be9aa1ca --- /dev/null +++ b/tests/tasks/Users Management/__init__.robot @@ -0,0 +1,2 @@ +*** Settings *** +Force Tags users_management \ No newline at end of file diff --git a/tests/tasks/Users Management/users.robot b/tests/tasks/Users Management/users.robot new file mode 100644 index 0000000000000000000000000000000000000000..d4f0baaa8a5468b84d18e133db0f8667425b33d6 --- /dev/null +++ b/tests/tasks/Users Management/users.robot @@ -0,0 +1,97 @@ +*** Settings *** +Resource /opt/robot-tests/tests/resources/common.resource +Resource /opt/robot-tests/tests/resources/api_invoker_management_requests/apiInvokerManagementRequests.robot +Resource ../../resources/common.resource +Resource ../../resources/common/basicRequests.robot +Library /opt/robot-tests/tests/libraries/bodyRequests.py +Library Process +Library Collections +Library ArchiveLibrary +Library OperatingSystem +Library DateTime +Library String + +Suite Teardown Reset Testing Environment + + +*** Variables *** +${TOTAL_USERS} 5 + +${BACKUP_DIRECTORY} backup +${RESULT_FOLDER} /opt/robot-tests/results +${OUTPUT_ZIP_FILE} entities_loaded.zip + +${USER_PASSWORD} umapassword +${USERNAME_PREFIX} uma +${DESCRIPTION} Testing purpouse + + +*** Test Cases *** +Create Client Users + [Tags] create-users + ${entities_dictionary}= Create Dictionary + Create Directory ${BACKUP_DIRECTORY} + + FOR ${counter} IN RANGE ${TOTAL_USERS} + ${USERNAME}= Set Variable ${USERNAME_PREFIX}_${counter} + + ${resp}= Run Keyword And Continue On Failure Create User At Register + ... ${USERNAME} + ... ${USER_PASSWORD} + ... ${DESCRIPTION} + ... email="${USERNAME}@nobody.com" + + ${register_user_info}= Create Dictionary + + IF ${resp.status_code} == 201 + ${register_user_info}= Create Dictionary + ... user_uuid=${resp.json()['uuid']} + ... &{resp.json()} + ELSE + ${register_user_info}= Create Dictionary + ... ${resp.json()} + END + + Set To Dictionary ${entities_dictionary} ${USERNAME}=${register_user_info} + Copy Files *${USERNAME}* ${BACKUP_DIRECTORY}/ + END + + Write Dictionary ${BACKUP_DIRECTORY}/registers.json ${entities_dictionary} + ${date}= Get Current Date result_format=%Y_%m_%d_%H_%M_%S + Create Zip From Files In Directory ${BACKUP_DIRECTORY} ${RESULT_FOLDER}/${date}_${OUTPUT_ZIP_FILE} + + ${result}= Run Process ls -l + + Log Many ${result.stdout} + +Remove Client Users + [Tags] remove-users + ${files}= List Files In Directory ${RESULT_FOLDER} *${OUTPUT_ZIP_FILE} + ${sorted_list}= Copy List ${files} + + Sort List ${sorted_list} + Log To Console message + ${last_backup}= Get From List ${sorted_list} -1 + + Copy File ${RESULT_FOLDER}/${last_backup} ./ + Extract Zip File ${last_backup} + + ${entities_dictionary}= Read Dictionary registers.json + + Log Dictionary ${entities_dictionary} + + FOR ${username} IN @{entities_dictionary} + Log ${username}=${entities_dictionary}[${username}] + Run Keyword And Continue On Failure ${username} + END + + ${result}= Run Process ls -l + + Log Many ${result.stdout} + + +*** Keywords *** +Delete User + [Arguments] ${username} + ${user_uuid}= Get User Uuid At Register ${username} + Delete User Admin Register Request ${user_uuid}