mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-25 19:56:09 +01:00
a534094ec0
Update project and system robot account testcase Update system robot account do replication testcase Signed-off-by: Yang Jiao <jiaoya@vmware.com>
130 lines
7.4 KiB
Plaintext
130 lines
7.4 KiB
Plaintext
# Copyright Project Harbor Authors
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License
|
|
|
|
*** Settings ***
|
|
Documentation This resource provides any keywords related to the Harbor private registry appliance
|
|
Resource ../../resources/Util.robot
|
|
|
|
*** Variables ***
|
|
|
|
|
|
*** Keywords ***
|
|
Create A Random Permission Item List
|
|
${permission_item_all_list}= Create List Push Repository
|
|
... Pull Repository
|
|
... Delete Repository
|
|
... Delete Artifact
|
|
... Create Tag
|
|
... Delete Tag
|
|
... List Tag
|
|
... Create Artifact label
|
|
... Delete Artifact label
|
|
... Create Scan
|
|
... Stop Scan
|
|
... List Artifact
|
|
... List Repository
|
|
|
|
|
|
Set Suite Variable ${permission_item_all_list}
|
|
|
|
${len}= Get Length ${permission_item_all_list}
|
|
${tmp_list}= Create List @{EMPTY}
|
|
FOR ${i} IN RANGE 0 ${${len}-1}
|
|
${r}= Evaluate random.randint(0, 1)
|
|
Run Keyword If '${r}'=='1' Append To List ${tmp_list} ${permission_item_all_list}[${i}]
|
|
END
|
|
Run Keyword If ${tmp_list}==@{EMPTY} Append To List ${tmp_list} ${permission_item_all_list}[${0}]
|
|
${push_pos}= Get Index From List ${tmp_list} ${permission_item_all_list}[${0}]
|
|
${pull_pos}= Get Index From List ${tmp_list} ${permission_item_all_list}[${1}]
|
|
Run Keyword If '${push_pos}' >= '${0}' and '${pull_pos}'=='${-1}' Append To List ${tmp_list} ${permission_item_all_list}[${1}]
|
|
[Return] ${tmp_list}
|
|
|
|
Create A Random Project Permission List
|
|
[Arguments] ${project_count}
|
|
${tmp_list}= Create List @{EMPTY}
|
|
FOR ${i} IN RANGE ${project_count}
|
|
${d}= Get Current Date result_format=%m%s
|
|
${pro_name}= Set Variable project_${i}_${d}
|
|
${permission_item_list}= Create A Random Permission Item List
|
|
Log To Console '@{permission_item_list}'
|
|
Create An New Project And Go Into Project ${pro_name}
|
|
${tmp_dict} = Create Dictionary project_name=${pro_name} permission_item_list=@{permission_item_list}
|
|
Append To List ${tmp_list} ${tmp_dict}
|
|
END
|
|
Log To Console tmp_list:'@{tmp_list}'
|
|
[Return] ${tmp_list}
|
|
|
|
Filter Project In Project Permisstion List
|
|
[Arguments] ${name}
|
|
Retry Double Keywords When Error Retry Element Click ${save_sys_robot_project_filter_chb} Retry Wait Until Page Contains Element ${save_sys_robot_project_filter_input}
|
|
Retry Text Input ${save_sys_robot_project_filter_input} ${name}
|
|
Retry Double Keywords When Error Retry Element Click ${save_sys_robot_project_filter_close_btn} Retry Wait Until Page Not Contains Element ${save_sys_robot_project_filter_input}
|
|
|
|
Clear Global Permissions By JavaScript
|
|
Retry Element Click //button[contains(., 'RESET PERMISSIONS')]
|
|
FOR ${i} IN RANGE 0 10
|
|
Execute JavaScript document.getElementsByClassName('dropdown-item')[${i}].click();
|
|
END
|
|
|
|
Select Project Permission
|
|
[Arguments] ${project_name} ${permission_item_list}
|
|
FOR ${permission} IN @{permission_item_list}
|
|
Log To Console project: ${project_name}; permission: ${permission}
|
|
${item}= Set Variable //clr-dg-row[contains(., '${project_name}')]//clr-dropdown/clr-dropdown-menu//span[contains(., '${permission}')]
|
|
Execute JavaScript document.evaluate("${item}",document.body,null,9,null).singleNodeValue.click();
|
|
Capture Page Screenshot
|
|
END
|
|
|
|
Create A System Robot Account
|
|
[Arguments] ${robot_account_name} ${expiration_type} ${description}=${null} ${days}=${null} ${cover_all_system_resources}=${null} ${cover_all_project_resources}=${null}
|
|
Retry Element Click ${new_sys_robot_account_btn}
|
|
Retry Wait Element Should Be Disabled //button[text()='Next']
|
|
Retry Text Input ${sys_robot_account_name_input} ${robot_account_name}
|
|
Run Keyword If '${description}' != '${null}' Retry Text Input ${sys_robot_account_description_textarea} ${description}
|
|
Select From List By Value ${sys_robot_account_expiration_type_select} ${expiration_type}
|
|
Run Keyword If '${expiration_type}' == 'days' Retry Text Input ${sys_robot_account_expiration_input} ${days}
|
|
Retry Button Click //button[text()='Next']
|
|
Retry Wait Element Should Be Disabled ${project_robot_account_create_finish_btn}
|
|
Run Keyword If '${cover_all_system_resources}' == '${true}' Retry Element Click //*[@id='clr-wizard-page-1']//span[text()='Select all']
|
|
Retry Double Keywords When Error Retry Button Click //button[text()='Next'] Retry Wait Element Not Visible //button[text()='Next']
|
|
Run Keyword If '${cover_all_project_resources}' == '${true}' Run Keywords Retry Element Click ${sys_robot_account_coverall_chb} AND Retry Element Click //*[@id='clr-wizard-page-2']//span[text()='Select all']
|
|
Retry Double Keywords When Error Retry Element Click ${project_robot_account_create_finish_btn} Retry Wait Element Not Visible ${project_robot_account_create_finish_btn}
|
|
${robot_account_name}= Get Text ${project_robot_account_name_xpath}
|
|
${token}= Get Value //hbr-copy-input//input
|
|
Retry Element Click //hbr-copy-input//clr-icon
|
|
[Return] ${robot_account_name} ${token}
|
|
|
|
Check System Robot Account API Permission
|
|
[Arguments] ${robot_account_name} ${token} ${admin_user_name} ${admin_password} ${resources} ${expected_status}=0
|
|
${rc} ${output}= Run And Return Rc And Output USER_NAME='${robot_account_name}' PASSWORD='${token}' ADMIN_USER_NAME=${admin_user_name} ADMIN_PASSWORD=${admin_password} HARBOR_BASE_URL=https://${ip}/api/v2.0 RESOURCES=${resources} python ./tests/apitests/python/test_system_permission.py
|
|
Should Be Equal As Integers ${rc} ${expected_status}
|
|
|
|
System Robot Account Exist
|
|
[Arguments] ${name} ${project_count}
|
|
Retry Double Keywords When Error Retry Element Click ${filter_dist_btn} Wait Until Element Is Visible And Enabled ${filter_dist_input}
|
|
Retry Text Input ${filter_dist_input} ${name}
|
|
${projects}= Set Variable If '${project_count}' == 'all' All projects with ${project_count} PROJECT
|
|
Retry Wait Until Page Contains Element //clr-dg-row[contains(.,'${name}') and contains(.,'${projects}')]
|
|
|
|
Get Robot Account Info By File
|
|
[Arguments] ${file_path}
|
|
Retry File Should Exist ${file_path}
|
|
${json}= Load Json From File ${file_path}
|
|
${id}= Set Variable ${json["id"]}
|
|
${name}= Set Variable ${json["name"]}
|
|
${secret}= Set Variable ${json["secret"]}
|
|
${creation_time}= Set Variable ${json["creation_time"]}
|
|
${expires_at}= Set Variable ${json["expires_at"]}
|
|
[Return] ${id} ${name} ${secret} ${creation_time} ${expires_at}
|