aboutsummaryrefslogtreecommitdiffstats
path: root/services/frontend/fe_user.py
diff options
context:
space:
mode:
Diffstat (limited to 'services/frontend/fe_user.py')
-rw-r--r--services/frontend/fe_user.py455
1 files changed, 0 insertions, 455 deletions
diff --git a/services/frontend/fe_user.py b/services/frontend/fe_user.py
deleted file mode 100644
index 1438007..0000000
--- a/services/frontend/fe_user.py
+++ /dev/null
@@ -1,455 +0,0 @@
-
-# ============LICENSE_START==========================================
-# org.onap.vvp/test-engine
-# ===================================================================
-# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-# ===================================================================
-#
-# Unless otherwise specified, all software contained herein is licensed
-# under the Apache License, Version 2.0 (the “License”);
-# you may not use this software 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.
-#
-#
-#
-# Unless otherwise specified, all documentation contained herein is licensed
-# under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
-# you may not use this documentation except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://creativecommons.org/licenses/by/4.0/
-#
-# Unless required by applicable law or agreed to in writing, documentation
-# 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.
-#
-# ============LICENSE_END============================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-from selenium.webdriver.support.select import Select
-
-from services.api.api_user import APIUser
-from services.api.api_virtual_function import APIVirtualFunction
-from services.constants import Constants
-from services.database.db_general import DBGeneral
-from services.database.db_user import DBUser
-from services.frontend.base_actions.click import Click
-from services.frontend.base_actions.enter import Enter
-from services.frontend.base_actions.get import Get
-from services.frontend.base_actions.wait import Wait
-from services.frontend.fe_general import FEGeneral
-from services.helper import Helper
-from services.logging_service import LoggingServiceFactory
-from services.session import session
-
-
-logger = LoggingServiceFactory.get_logger()
-
-
-class FEUser:
-
- @staticmethod
- def login(
- email,
- password,
- expected_element=Constants.Dashboard.Statuses.Title.ID,
- element_type="id"):
- try:
- logger.debug("Verifying and Insert Login page elements:")
- logger.debug("Insert Email " + email)
- Wait.name(Constants.Login.Email.NAME, wait_for_page=True)
- Enter.text_by_name(Constants.Login.Email.NAME, email)
- logger.debug("Insert Password")
- Enter.text_by_name(Constants.Login.Password.NAME, password)
- logger.debug("Click Login Button")
- Click.css(Constants.SubmitButton.CSS)
- logger.debug("Login Button clicked")
- if element_type == 'id':
- Wait.id(expected_element, True)
- elif element_type == 'css':
- Wait.css(expected_element, True)
- # If failed - count the failure and add the error to list of errors.
- except Exception as e:
- errorMsg = "Login FAILED: email=%s password=%s" % (email, password)
- logger.error(errorMsg)
- raise Exception(errorMsg, e)
-
- @staticmethod
- def relogin(
- email,
- password,
- expected_element=Constants.Dashboard.Statuses.Title.ID,
- element_type="id"):
- FEGeneral.re_open(Constants.Default.LoginURL.TEXT)
- FEUser.login(email, password, expected_element, element_type)
-
- @staticmethod
- def logout():
- Click.id(Constants.Dashboard.Avatar.ID)
- Click.link_text(Constants.Dashboard.Avatar.Logout.LINK_TEXT)
-
- @staticmethod
- def activate_and_login(
- email,
- password,
- expected_element=Constants.Dashboard.Statuses.Title.ID,
- element_type="id"):
- activationUrl = DBUser.get_activation_url(email)
- FEGeneral.re_open(activationUrl)
- FEUser.login(email, password, expected_element, element_type)
-
- @staticmethod
- def open_account_form():
- Click.id(Constants.Dashboard.Avatar.ID, wait_for_page=True)
- Click.link_text(
- Constants.Dashboard.Avatar.Account.LINK_TEXT, wait_for_page=True)
-
- @staticmethod
- # Update account API - only adds new SSH key!
- def update_account_and_return_changes():
- try:
- Select(session.ice_driver.find_element_by_name(
- "company")).select_by_visible_text("Nokia")
- randomName = Helper.rand_string("randomString")
- Enter.text_by_name("fullname", randomName)
- phone = "97258" + Helper.rand_string("randomNumber", 6)
- Enter.text_by_name("phone", phone)
- password = Constants.Default.Password.NewPass.TEXT
- Enter.text_by_name("password", password)
- Enter.text_by_name("confirm_password", password)
- Wait.text_by_css("button.btn.btn-primary", "Update")
- Click.css("button.btn.btn-primary")
- Wait.text_by_id(
- Constants.Toast.ID, "Account was updated successfully!")
- Click.id(Constants.Dashboard.Statuses.ID)
-
- accountObj = [randomName, phone, password]
- return accountObj
- # If failed - count the failure and add the error to list of errors.
- except BaseException:
- errorMsg = "Failed in update accaunt ."
- raise Exception(errorMsg)
- raise
-
- @staticmethod
- def go_to_account():
- try:
- FEUser.click_on_avatar()
- FEUser.click_on_account()
- except Exception as e:
- errorMsg = "Failed to go to Account page."
- raise Exception(errorMsg, e)
-
- @staticmethod
- def go_to_notifications():
- try:
- FEUser.click_on_avatar()
- FEUser.click_on_notifications()
- Wait.page_has_loaded()
- except Exception as e:
- errorMsg = "Failed to go to Notifications page."
- raise Exception(errorMsg, e)
-
- @staticmethod
- def click_on_avatar():
- try:
- Click.id(Constants.Dashboard.Avatar.ID, wait_for_page=True)
- except Exception as e:
- errorMsg = "Failed to click_on on Avatar."
- raise Exception(errorMsg, e)
-
- @staticmethod
- def click_on_admin():
- try:
- Click.id(
- Constants.Dashboard.Avatar.Admin.Title.ID, wait_for_page=True)
- except Exception as e:
- errorMsg = "Failed to click_on on Admin."
- raise Exception(errorMsg, e)
-
- @staticmethod
- def click_on_feedback():
- Click.id(Constants.Dashboard.Feedback.ID, wait_for_page=True)
- Wait.id(
- Constants.Dashboard.Feedback.FeedbackModal.SAVE_BTN_ID,
- wait_for_page=True)
-
- @staticmethod
- def validate_feedback(description, user_email):
- query = "SELECT user_id FROM ice_feedback where " +\
- "description = '{desc}'".format(
- desc=description)
- feedback_user_uuid = DBGeneral.select_query(query)
- query = "SELECT id FROM ice_user_profile where " +\
- "email = '{email}'".format(
- email=user_email)
- user_uuid = DBGeneral.select_query(query)
- Helper.internal_assert(user_uuid, feedback_user_uuid)
-
- @staticmethod
- def add_feedback():
- Wait.css("textarea[name=\"description\"]", wait_for_page=True)
- description = Helper.rand_string("randomString")
- Enter.text_by_css("textarea[name=\"description\"]", description)
- Click.id(
- Constants.Dashboard.Feedback.FeedbackModal.SAVE_BTN_ID,
- wait_for_page=True)
- Wait.text_by_id(Constants.Toast.ID,
- "Feedback was sent successfully.", wait_for_page=True)
- return description
-
- @staticmethod
- def click_on_account():
- try:
- Click.link_text(Constants.Dashboard.Avatar.Account.LINK_TEXT)
- Wait.text_by_css(Constants.Dashboard.Avatar.Account.Title.CSS,
- Constants.Dashboard.Avatar.Account.Title.TEXT)
- except Exception as e:
- errorMsg = "Failed to click_on on Admin."
- raise Exception(errorMsg, e)
-
- @staticmethod
- def click_on_notifications():
- try:
- Click.link_text(
- Constants.Dashboard.Avatar.Notifications.LINK_TEXT,
- wait_for_page=True)
- Wait.text_by_id(
- Constants.Dashboard.Avatar.Notifications.Title.ID,
- Constants.Dashboard.Avatar.Notifications.Title.TEXT,
- wait_for_page=True)
- except Exception as e:
- errorMsg = "Failed to click_on on Admin."
- raise Exception(errorMsg, e)
-
- @staticmethod
- def go_to_admin():
- try:
- FEUser.click_on_avatar()
- FEUser.click_on_admin()
- except Exception as e:
- errorMsg = "Failed to go to Admin page."
- raise Exception(errorMsg, e)
-
- @staticmethod
- def assigned_one_NS_to_user(user_content):
- nextStepsNumber = int(
- Get.by_id("next-steps-header").split('(')[1][:-1])
- if (nextStepsNumber != 0):
- logger.error("assigned ns: " + str(nextStepsNumber))
- logger.error(
- "APIUser should not have assigned next steps at first login.")
- raise
- if (Get.by_id("next-steps-list") !=
- "No next steps are assigned to you."):
- logger.error(
- "No assigned next steps and text 'No next steps are " +
- "assigned to you.' was not found.")
- raise
- token = "token " + APIUser.login_user(user_content['el_email'])
- user_content['session_token'] = token
- logger.debug(
- "Adding new next step (via api) and assigning it to user " +
- user_content['full_name'])
- APIVirtualFunction.add_next_step(user_content)
- logger.debug(
- "Refresh page and look for changes in assigned " +
- "next steps section:")
- FEGeneral.refresh()
- logger.debug(" > Check if number has changed in 'Assigned To You'")
- FEUser.logout()
- FEUser.login(
- user_content['email'], Constants.Default.Password.TEXT)
- text = Get.by_id("next-steps-header", True)
- Helper.internal_assert(text, "Assigned To You (1)")
-
- @staticmethod
- def set_ssh_key_from_account(key, is_negative=False):
- FEUser.go_to_account()
- Enter.text_by_name(Constants.Dashboard.Avatar.Account.SSHKey.NAME, key)
- Click.css(Constants.SubmitButton.CSS)
- if is_negative:
- Wait.text_by_id(
- Constants.Toast.ID,
- Constants.Dashboard.Avatar.Account.SSHKey.UpdateFailed.TEXT)
- else:
- Wait.text_by_id(
- Constants.Toast.ID,
- Constants.Dashboard.Avatar.Account.Update.Success.TEXT)
-
- @staticmethod
- def reset_password():
- Wait.text_by_css(
- Constants.UpdatePassword.Title.CSS,
- Constants.UpdatePassword.Title.TEXT)
- Wait.text_by_css(
- Constants.UpdatePassword.SubTitle.CSS,
- Constants.UpdatePassword.SubTitle.TEXT)
- Wait.text_by_css(
- Constants.SubmitButton.CSS, Constants.UpdatePassword.Button.TEXT)
- Enter.text_by_name(
- Constants.UpdatePassword.Password.NAME,
- Constants.Default.Password.NewPass.TEXT)
- Enter.text_by_name(
- Constants.UpdatePassword.ConfirmPassword.NAME,
- Constants.Default.Password.NewPass.TEXT)
- Click.css(Constants.SubmitButton.CSS)
- Wait.text_by_id(
- Constants.Toast.ID, Constants.UpdatePassword.Toast.TEXT)
-
- @staticmethod
- def delete_notification(notificationID):
- if isinstance(notificationID, tuple):
- notificationID = notificationID[0]
- delete_button = Constants.Dashboard.Avatar.Notifications.\
- DeleteNotification.ID + notificationID
- # Click on delete button.
- Click.id(delete_button, wait_for_page=True)
- Wait.id_to_dissappear(delete_button)
-
- @staticmethod
- def validate_notifications(notificationIDs, notification_list):
- ui_list = []
- for notifID in notificationIDs:
- if isinstance(notifID, tuple):
- notifID = notifID[0]
- ui_list.append(str(Get.by_id(
- Constants.Dashboard.Avatar.Notifications.
- NotificationColumn.ID + notifID)))
- for activity in notification_list:
- if not any(activity in s for s in ui_list):
- raise AssertionError(
- "Activity: \"" + activity + "\" not appears in UI")
-
- @staticmethod
- def click_on_export_excel(user_content):
- Enter.text_by_id(
- Constants.Dashboard.Statuses.SearchBox.ID, user_content['vfName'])
- engName = user_content[
- 'engagement_manual_id'] + ": " + user_content['vfName']
- engSearchID = "eng-" + engName
- Wait.id(engSearchID)
- # Find the download link and click it
- Click.id(Constants.Dashboard.Statuses.ExportExcel.ID)
-
- @staticmethod
- def open_invite_team_member_form(vf_left_nav_id):
- Click.id(vf_left_nav_id)
- Click.id(Constants.Dashboard.Overview.TeamMember.ID)
- Wait.text_by_name(
- Constants.Dashboard.Wizard.InviteTeamMembers.Title.NAME,
- Constants.Dashboard.Wizard.InviteTeamMembers.Title.TEXT)
-
- @staticmethod
- def invite_single_user_to_team(email):
- Enter.text_by_name("email", email, wait_for_page=True)
- Click.css(Constants.SubmitButton.CSS, wait_for_page=True)
-
- @staticmethod
- def go_to_user_profile_settings():
- FEUser.go_to_account()
- Click.id(
- Constants.Dashboard.Avatar.Account.UserProfileSettings.ID,
- wait_for_page=True)
- Wait.text_by_id(
- Constants.Dashboard.Avatar.Account.UserProfileSettings.TitleID,
- Constants.Dashboard.Avatar.Account.UserProfileSettings.TitleText,
- wait_for_page=True)
-
- @staticmethod
- def check_user_profile_settings_checkboxes():
- Click.id(
- Constants.Dashboard.Avatar.Account.
- UserProfileSettings.ReceiveEmailsID,
- wait_for_page=True)
- Click.id(
- Constants.Dashboard.Avatar.Account.UserProfileSettings.
- ReceiveEmailEveryTimeID,
- wait_for_page=True)
- Click.id(
- Constants.Dashboard.Avatar.Account.UserProfileSettings.
- ReceiveDigestEmailID,
- wait_for_page=True)
- Click.id(
- Constants.Dashboard.Avatar.Account.UserProfileSettings.
- UpdateButtonID,
- wait_for_page=True)
-
- @staticmethod
- def validate_user_profile_settings_checkboxes(checked):
- Wait.page_has_loaded()
- receive_emails = Get.is_selected_by_id(
- Constants.Dashboard.Avatar.Account.UserProfileSettings.
- ReceiveEmailsID, True)
- Helper.internal_assert(receive_emails, checked)
- Get.is_selected_by_id(
- Constants.Dashboard.Avatar.Account.UserProfileSettings.
- ReceiveNotificationsID, True)
- receive_email_every_time = Get.is_selected_by_id(
- Constants.Dashboard.Avatar.Account.UserProfileSettings.
- ReceiveEmailEveryTimeID, True)
- Helper.internal_assert(receive_email_every_time, checked)
- receive_digest_email = Get.is_selected_by_id(
- Constants.Dashboard.Avatar.Account.UserProfileSettings.
- ReceiveDigestEmailID, True)
- Helper.internal_assert(receive_digest_email, not checked)
-
- @staticmethod
- def compare_notifications_count_for_user(expected_count):
- Wait.text_by_id(
- Constants.Dashboard.Avatar.Notifications.Count.ID,
- expected_count,
- True)
-
- @staticmethod
- def check_notification_number_is_not_presented():
- FEGeneral.refresh()
- Wait.id_to_dissappear(
- Constants.Dashboard.Avatar.Notifications.Count.ID,
- wait_for_page=True)
-
- @staticmethod
- def validate_account_details(full_name, phone_number, ssh_key):
- Helper.internal_assert(full_name, Get.value_by_name(
- Constants.Dashboard.Avatar.Account.FullName.NAME))
- Helper.internal_assert(phone_number, Get.value_by_name(
- Constants.Dashboard.Avatar.Account.Phone.NAME))
- Helper.internal_assert(ssh_key, Get.value_by_name(
- Constants.Dashboard.Avatar.Account.SSHKey.NAME))
-
- @staticmethod
- def check_rgwa_access_key(my_key):
- Wait.text_by_id(
- Constants.Dashboard.Avatar.Account.RGWA.Key.KEY_ID, my_key)
-
- @staticmethod
- def check_rgwa_access_secret(my_secret):
- Click.id(Constants.Dashboard.Avatar.Account.RGWA.Secret.BUTTON_ID)
- Wait.text_by_id(
- Constants.Dashboard.Avatar.Account.RGWA.Secret.SECRET_ID,
- my_secret)
-
- @staticmethod
- def get_rgwa_access_secret():
- Click.id(Constants.Dashboard.Avatar.Account.RGWA.Secret.BUTTON_ID,
- wait_for_page=True)
- secret = Get.by_id(
- Constants.Dashboard.Avatar.Account.RGWA.Secret.SECRET_ID,
- wait_for_page=True)
- return secret
-
- @staticmethod
- def check_rgwa_access_secret_not_presented():
- Wait.text_by_id(
- Constants.Dashboard.Avatar.Account.RGWA.Secret.SECRET_ID,
- Constants.Dashboard.Avatar.Account.RGWA.Secret.SECRET_TEXT)