diff options
Diffstat (limited to 'services/frontend/fe_checklist.py')
-rw-r--r-- | services/frontend/fe_checklist.py | 854 |
1 files changed, 0 insertions, 854 deletions
diff --git a/services/frontend/fe_checklist.py b/services/frontend/fe_checklist.py deleted file mode 100644 index 133c6d1..0000000 --- a/services/frontend/fe_checklist.py +++ /dev/null @@ -1,854 +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 django.conf import settings -from selenium.webdriver.support.ui import Select -from wheel.signatures import assertTrue - -from services.database.db_checklist import DBChecklist -from services.database.db_user import DBUser -from services.database.db_virtual_function import DBVirtualFunction -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.frontend.fe_overview import FEOverview -from services.frontend.fe_user import FEUser -from services.frontend.fe_wizard import FEWizard -from services.helper import Helper -from services.logging_service import LoggingServiceFactory -from services.database.db_general import DBGeneral -from services.constants import Constants -from services.session import session - - -logger = LoggingServiceFactory.get_logger() - - -class FEChecklist: - - assocciatedFileName = None - - @staticmethod - def go_to_checklist(engagement_id, cl_uuid): - try: - Click.id(engagement_id) - Click.id("checklist-" + cl_uuid) - Wait.id("line-item-description") - except Exception as e: - errorMsg = "Failed to go to checklist page." - raise Exception(errorMsg, e) - - @staticmethod - def create_new_checklist(newObj): - try: - newObjWithChecklist = None - vfName = newObj[0] - uuid = newObj[1] - inviteEmail = newObj[2] - # Fetch one AT&T user ID. - vfuuid = DBGeneral.select_where( - "uuid", "ice_vf", "name", vfName, 1) - engagement_id = DBVirtualFunction.select_eng_uuid(vfName) - engLeadEmail = DBUser.select_el_email(vfName) - logger.debug("EL email: " + engLeadEmail) - engagement_manual_id = DBGeneral.select_where( - "engagement_manual_id", "ice_engagement", "uuid", - engagement_id, 1) - # Click on all default next steps - myVfName = engagement_manual_id + ": " + vfName - actualVfNameid = "clickable-" + myVfName - actualVfName = Get.by_id(actualVfNameid) - Helper.internal_assert(myVfName, actualVfName) - # NEXT STEP ID - Click.id(actualVfNameid, wait_for_page=True) - FEOverview.complete_defaults_nextsteps(engagement_id) - inviterURL = Constants.Default.InviteURL.Signup.TEXT + \ - vfuuid + "&inviter_uuid=" + uuid + "&email=" + inviteEmail -# time.sleep(2) - FEGeneral.re_open(inviterURL) - FEGeneral.form_validate_email(inviteEmail) - # Login with EL role - FEGeneral.re_open(Constants.Default.LoginURL.TEXT) - FEUser.login(engLeadEmail, Constants.Default.Password.TEXT) - Wait.id(Constants.Dashboard.Statuses.Title.ID) - Wait.id(engagement_manual_id) # cheklist - # VALIDATE SCROLLING - actualVfName = Get.by_id(actualVfNameid) - myVfName = engagement_manual_id + ": " + vfName -# Wait.id(actualVfNameid) - Wait.id(engagement_manual_id, wait_for_page=True) - Click.id(actualVfNameid, wait_for_page=True) - # Create new checklist - checklistName = FEChecklist.create_checklist( - engagement_id, vfName, actualVfName, engagement_manual_id) - checklistUuid = DBGeneral.select_where( - "uuid", "ice_checklist", "name", checklistName, 1) - newObjWithChecklist = [ - checklistUuid, - engLeadEmail, - engagement_manual_id, - actualVfNameid, - myVfName, - checklistName] - return newObjWithChecklist - # If failed - count the failure and add the error to list of errors. - except Exception as e: - errorMsg = "Failed to create checklist." + str(e) - raise Exception(errorMsg, "create_new_checklist") - - @staticmethod - def create_checklist( - engagement_id, - vfName, - actualVfName, - engagement_manual_id): - try: - checklistName = Helper.rand_string("randomString") - Wait.id("checklist-plus-" + engagement_id, wait_for_page=True) - - Click.id("checklist-plus-" + engagement_id, wait_for_page=True) - - Helper.internal_assert( - "Create Checklist", Get.by_id("modal-header-checklist-15")) - # vm.checkListName - Enter.text_by_name( - "checkListName", checklistName, wait_for_page=True) - Wait.xpath("//select") - - Select( - session.ice_driver.find_element_by_id( - Constants.Template.Subtitle.SelectTemplateTitle.TEXT - )).select_by_visible_text( - Constants.Template.Heat.TEXT) - Click.id(Constants.Template.Heat.TEXT, wait_for_page=True) -# Click.css("option.ng-binding.ng-scope") - Helper.internal_assert( - "Associate Files", - Get.by_id( - "associated-files-title", - wait_for_page=True)) - Click.xpath("//multiselect/div/button", wait_for_page=True) - Click.link_text("file0", wait_for_page=True) - Click.link_text("file1") - Wait.text_by_css(Constants.SubmitButton.CSS, "Create Checklist") - Click.id(Constants.Dashboard.LeftPanel.CreateChecklist.ID) - Wait.modal_to_dissappear() - Wait.id(engagement_manual_id) - return checklistName - # If failed - count the failure and add the error to list of errors. - except Exception as e: - errorMsg = "Failed to create checklist." + str(e) - raise Exception(errorMsg, "create_checklist") - - @staticmethod - def update_cl_name_and_associated_files(engagement_manual_id): - Click.id("edit-checklist", True) - Wait.text_by_id("modal-header-checklist-15", "Update Checklist") - newfileName = "file" + Helper.rand_string("randomString") - Enter.text_by_xpath("//div[3]/div/div/input", newfileName) - updatedFileName = "file2" - # Select associated files from multi-select drop-down. - Click.xpath("//multiselect/div/button") - Click.link_text("file2") - Click.css(Constants.SubmitButton.CSS) - Wait.id(engagement_manual_id) - newFileNames = [newfileName, updatedFileName] - return newFileNames - - @staticmethod - def update_cl_associated_files(engagement_manual_id): - Click.id("edit-checklist", True) - Wait.text_by_id("modal-header-checklist-15", "Update Checklist") - # Select associated files from multi-select drop-down. - Click.xpath("//multiselect/div/button") - Click.link_text("file2") - Click.xpath("//multiselect/div/button") - Click.css(Constants.SubmitButton.CSS) - Wait.id(engagement_manual_id, True) - - @staticmethod - def add_next_step(checklistName, newObj): - Click.id(Constants.Dashboard.Checklist.AddNS.ID, wait_for_page=True) - Wait.text_by_css("span.font_header", "Checklist:") - Helper.internal_assert("Checklist:", Get.by_css("span.font_header")) - Helper.internal_assert("Add Next Steps", Get.by_css("h2")) - # First NS - Click.id("description") - Enter.text_by_id("description", "description of NS") - Click.css("div.modal-content") - Click.xpath("(//button[@type='button'])[10]") - FEChecklist.assocciatedFileName = "file0" - Click.link_text(FEChecklist.assocciatedFileName) - Click.css("div.modal-content") - Click.xpath("(//button[@type='button'])[11]") - try: - Click.xpath("//div[3]/multiselect/div/ul/li/a") - except BaseException: - Click.link_text("Homer Simpson") - Click.css("div.modal-content") - count = 0 - FEWizard.date_picker_add_ns(count) - count = +1 - Click.css("span.add-text") - Click.xpath("(//div[@id='description'])[2]") - Enter.text_by_xpath( - "(//div[@id='description'])[2]", "description of NS2") - Click.css("div.modal-content") - Click.xpath("(//button[@type='button'])[14]") - Click.xpath("(//button[@type='button'])[22]") - Click.xpath("//div[3]/div/div[2]/multiselect/div/ul/li[2]/a") - Click.css("div.modal-content") - Click.xpath("(//button[@type='button'])[23]") - Click.css( - "div.btn-group.open > ul.dropdown-menu > " + - "li.ng-scope > a.ng-binding") - Click.link_text("Add Another Next Step") - Click.xpath("(//button[@type='button'])[25]") - FEWizard.date_picker_add_ns(count) - Click.xpath("//div[4]/div/span") - Helper.internal_assert("Submit Next Steps", Get.by_id("btn-submit")) - Click.id("btn-submit", wait_for_page=True) - - @staticmethod - def add_next_step_updated(checklistName, newFileName): - Click.id(Constants.Dashboard.Checklist.AddNS.ID) - Wait.id(Constants.Dashboard.Modal.CLOSE_BUTTON_ID) - Wait.text_by_css("span.font_header.ng-binding", "Checklist:") - Wait.text_by_css("h2.ng-binding", "Add Next Steps") - # First NS - Click.id("description") - Enter.text_by_id("description", "description of NS") - Click.css("div.modal-content") - Click.xpath("(//button[@type='button'])[10]") - Click.link_text(newFileName) - Click.css("div.modal-content") - Click.xpath("(//button[@type='button'])[11]") - try: - Click.xpath("//div[3]/multiselect/div/ul/li/a") - except BaseException: - Wait.link_text("Homer Simpson") - Click.link_text("Homer Simpson") - Wait.css("div.modal-content") - Click.css("div.modal-content") - Wait.xpath("(//button[@type='button'])[12]") - count = 0 - FEWizard.date_picker_add_ns(count) - count = +1 - Click.css("span.add-text") - Click.xpath("(//div[@id='description'])[2]") - Enter.text_by_xpath( - "(//div[@id='description'])[2]", "description of NS2") - Click.css("div.modal-content") - Click.xpath("(//button[@type='button'])[14]") - Click.xpath("(//button[@type='button'])[22]") - Click.xpath("//div[3]/div/div[2]/multiselect/div/ul/li[2]/a") - Click.css("div.modal-content") - Click.xpath("(//button[@type='button'])[23]") - Click.css( - "div.btn-group.open > ul.dropdown-menu > " + - "li.ng-scope > a.ng-binding") - Click.link_text("Add Another Next Step") - Wait.xpath("(//button[@type='button'])[25]") - Click.xpath("(//button[@type='button'])[25]") - Wait.xpath("(//button[@type='button'])[24]") - FEWizard.date_picker_add_ns(count) - Wait.xpath("//div[4]/div/span") - Click.xpath("//div[4]/div/span") - Wait.id("btn-submit") - Wait.text_by_id("btn-submit", "Submit Next Steps") - Click.id("btn-submit") - - @staticmethod - def approval_state_actions_and_validations(checklistName, newObj, state): - # REWVIEW STEPS AND VALIDATIONS - try: - Wait.id("checklist-main-section") - Wait.text_by_id( - Constants.Dashboard.Checklist.Name.ID, checklistName) - try: - if settings.DATABASE_TYPE == 'local': - Wait.text_by_css( - "h2.ng-binding", "Section 1: Parameter Specification") - Helper.internal_assert( - "Parameters", Get.by_css("span.col-md-9.ng-binding")) - Helper.internal_assert( - "String parameters", Get.by_xpath("//li[2]/span[2]")) - Helper.internal_assert( - "Numeric parameters", Get.by_xpath("//li[3]/span[2]")) - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Section 2: External References", - Get.by_xpath("//li[2]/h2")) - Helper.internal_assert( - "Normal references", - Get.by_xpath("//li[2]/ul/li/span[2]")) - Helper.internal_assert( - "VF image", Get.by_xpath("//li[2]/ul/li[2]/span[2]")) - except BaseException: - if settings.DATABASE_TYPE == 'local': - Wait.text_by_css( - "h2.ng-binding", "Section 1: External References") - try: - Helper.internal_assert( - "Normal references", Get.by_css( - "span.col-md-9.ng-binding")) - except BaseException: - if "VF image" in Get.by_xpath("//li[2]/span[2]"): - logger.debug("All Ok") - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Section 2: Parameter Specification", - Get.by_xpath("//li[2]/h2")) - try: - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "1.1 - Parameters", Get.by_xpath("//header/h2")) - except BaseException: - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "1.1 - Normal References", Get.by_xpath("//header/h2")) - if settings.DATABASE_TYPE == 'local': - elementTxt = Get.by_id("line-item-description") - Helper.internal_assert( - "Numeric parameters should include " + - "range and/or allowed values.", elementTxt) - Helper.internal_assert("Audit Logs", Get.by_css("h3.col-md-12")) - localLogText = "local log" - Enter.text_by_id("new-audit-log-text", localLogText) - Helper.internal_assert( - "Add Log Entry", Get.by_id("submit-new-audit-lop-text")) - Click.id("submit-new-audit-lop-text") - vfName = newObj[0] - DBUser.get_el_name(vfName) - Helper.internal_assert(localLogText, Get.by_css( - Constants.Dashboard.Checklist.AuditLog.LastLocalAuditLog.CSS)) - try: - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Parameters", Get.by_xpath("//li[2]/ul/li/span[2]")) - except BaseException: - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Numeric parameters", - Get.by_xpath("//li[2]/ul/li/span[2]")) - - session.run_negative( - lambda: Wait.css( - Constants.Dashboard.Checklist.LineItem.Deny.CSS - ) or Wait.css( - Constants.Dashboard.Checklist.LineItem.Approve.CSS), - "Buttons displayed for Admin it's NOT work") - if state == "APPROVAL": - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Audit Log (6)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - else: - Helper.internal_assert( - "Audit Log (7)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - if state == "HANDOFF": - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Audit Log (8)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - else: - Helper.internal_assert( - "Audit Log (9)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - Click.id(Constants.Dashboard.Checklist.AuditLog.ID) - Wait.text_by_xpath("//span[2]", checklistName) - DBUser.select_el_email(vfName) - Enter.text_by_xpath("//textarea", "zdfgsdyh") - Click.css(Constants.SubmitButton.CSS) - Wait.modal_to_dissappear() - if state == "APPROVAL": - if settings.DATABASE_TYPE == 'local': - Wait.text_by_id( - Constants.Dashboard.Checklist.AuditLog.ID, - "Audit Log (7)") - else: - Wait.text_by_id( - Constants.Dashboard.Checklist.AuditLog.ID, - "Audit Log (8)") - if state == "HANDOFF": - if settings.DATABASE_TYPE == 'local': - Wait.text_by_id( - Constants.Dashboard.Checklist.AuditLog.ID, - "Audit Log (9)") - else: - Wait.text_by_id( - Constants.Dashboard.Checklist.AuditLog.ID, - "Audit Log (10)") - if state == "APPROVAL": - Wait.text_by_xpath("//button[3]", "Add Next Steps") - Wait.text_by_id( - Constants.Dashboard.Checklist.Reject.ID, - Constants.Dashboard.Checklist.Reject.Modal.Button.TEXT) - Wait.text_by_xpath( - "//div[@id='state-actions']/button", "Approve") - if state == "HANDOFF": - Wait.text_by_xpath( - "//div[@id='state-actions']/button", "Handoff complete?") - logger.debug("ALL VALIDATION PASS FOR STATE : " + state) - # If failed - count the failure and add the error to list of errors. - except Exception as e: - logger.error( - state + - " state FAILED CONNECT TO STAGING MANUAL AND VERIFY WHY! ") - errorMsg = "approval_state_actions_and_validations " +\ - "FAILED because : " + str(e) - raise Exception(errorMsg, "approval_state_actions_and_validations") - - @staticmethod - def review_state_actions_and_validations(checklistName, vfName, state): - try: - # REWVIEW STEPS AND VALIDATIONS - Wait.id("checklist-main-section") - Wait.text_by_id( - Constants.Dashboard.Checklist.Name.ID, checklistName) - try: - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Section 1: Parameter Specification", - Get.by_css("h2.ng-binding")) - Helper.internal_assert( - "Parameters", Get.by_css("span.col-md-9.ng-binding")) - Helper.internal_assert( - "String parameters", Get.by_xpath("//li[2]/span[2]")) - Helper.internal_assert( - "Numeric parameters", Get.by_xpath("//li[3]/span[2]")) - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Section 2: External References", - Get.by_xpath("//li[2]/h2")) - Helper.internal_assert( - "Normal references", Get.by_name("Normal references")) - Helper.internal_assert( - "VF image", Get.by_name("Normal references")) - except BaseException: - try: - Helper.internal_assert( - "Section 1: External References", - Get.by_css("h2.ng-binding")) - except BaseException: - Helper.internal_assert( - "Section 1: Scaling Considerations", - Get.by_css("h2.ng-binding")) - try: - Helper.internal_assert( - "Normal references", - Get.by_css("span.col-md-9.ng-binding")) - except BaseException: - if "VF image" in Get.by_xpath("//li[2]/span[2]"): - logger.debug("All Ok") - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Section 2: Parameter Specification", - Get.by_xpath("//li[2]/h2")) - Click.name("VF image") - Click.name("Normal references") - try: - Helper.internal_assert( - "1.1 - Parameters", Get.by_xpath("//header/h2")) - except BaseException: - text = Get.by_name("Normal references") - Helper.internal_assert("Normal references", text) - Helper.internal_assert("Audit Logs", Get.by_css("h3.col-md-12")) - localLogText = "local log" - Enter.text_by_id("new-audit-log-text", localLogText) - Helper.internal_assert( - "Add Log Entry", Get.by_id("submit-new-audit-lop-text")) - Click.id("submit-new-audit-lop-text") - # Validate Local AuditLog - engLeadFullName = DBUser.get_el_name(vfName) - Helper.internal_assert( - engLeadFullName, - Get.by_xpath("//ul[@id='audit-log-list']/li/h4")) - Helper.internal_assert(localLogText, Get.by_css( - Constants.Dashboard.Checklist.AuditLog.LastLocalAuditLog.CSS)) - if settings.DATABASE_TYPE == 'local': - try: - Helper.internal_assert( - "Parameters", Get.by_xpath("//li[2]/ul/li/span[2]")) - except BaseException: - Helper.internal_assert( - "Numeric parameters", - Get.by_xpath("//li[2]/ul/li/span[2]")) - Click.name("Normal references") - Wait.css(Constants.Dashboard.Checklist.LineItem.Deny.CSS) - Wait.css(Constants.Dashboard.Checklist.LineItem.Approve.CSS) - Click.css(Constants.Dashboard.Checklist.LineItem.Approve.CSS) - # NOT LOCAL - if settings.DATABASE_TYPE != 'local': - checklistUuid = DBChecklist.get_recent_checklist_uuid( - checklistName)[0] - DBChecklist.update_all_decisions_to_approve(checklistUuid) - # NOT LOCAL - - Click.css(".line-item-row span.manual") - print("click on V button approve of decision in state = " + state) - try: - Wait.css("li.not-relevant-btn") - except BaseException: - Wait.xpath("//aside/header/ul/li") - if state == "review": - Wait.id("edit-checklist") - if state == "PEER": - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Audit Log (4)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - else: - Helper.internal_assert( - "Audit Log (5)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - if state == "review": - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Audit Log (2)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - else: - Helper.internal_assert( - "Audit Log (3)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - if state == "APPROVAL": - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Audit Log (8)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - else: - Helper.internal_assert( - "Audit Log (9)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - Click.id( - Constants.Dashboard.Checklist.AuditLog.ID, wait_for_page=True) - Wait.text_by_xpath("//span[2]", checklistName) - Enter.text_by_xpath("//textarea", "zdfgsdyh") - Click.css(Constants.SubmitButton.CSS) - Wait.modal_to_dissappear() - if state == "review": - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Audit Log (3)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - else: - Helper.internal_assert( - "Audit Log (4)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - if state == "PEER": - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Audit Log (5)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - else: - Helper.internal_assert( - "Audit Log (6)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - if state == "APPROVAL": - if settings.DATABASE_TYPE == 'local': - Helper.internal_assert( - "Audit Log (9)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - else: - Helper.internal_assert( - "Audit Log (10)", Get.by_id( - Constants.Dashboard.Checklist.AuditLog.ID)) - # Validate Buttons - if settings.DATABASE_TYPE != 'local': - FEGeneral.refresh() - engagement_id = DBVirtualFunction.select_eng_uuid(vfName) - engLeadEmail = DBUser.select_el_email(vfName) - logger.debug("EL email: " + engLeadEmail) - engagement_manual_id = DBGeneral.select_where( - "engagement_manual_id", "ice_engagement", "uuid", - engagement_id, 1) - # Click on all default next steps - myVfName = engagement_manual_id + ": " + vfName - actualVfNameid = "clickable-" + myVfName - Click.id(actualVfNameid) - Click.id("checklist-" + checklistUuid) - Helper.internal_assert( - "Add Next Steps", Get.by_xpath("//button[3]")) - Wait.text_by_id( - Constants.Dashboard.Checklist.Reject.ID, - Constants.Dashboard.Checklist.Reject.Modal.Button.TEXT, - wait_for_page=True) - Helper.internal_assert( - "Approve", Get.by_xpath("//div[@id='state-actions']/button")) - logger.debug("ALL VALIDATION PASS FOR STATE: " + state) - # If failed - count the failure and add the error to list of errors. - except Exception as e: - errorMsg = "review_state_actions_and_validations " +\ - "FAILED because: " + str(e) - raise Exception(errorMsg, "review_state_actions_and_validations") - logger.error( - state + - " state FAILED CONNECT TO STAGING MANUAL AND VERIFY WHY!") - raise - - @staticmethod - def reject(rejectMsg=None): - try: - Click.id( - Constants.Dashboard.Checklist.Reject.ID, wait_for_page=True) - if rejectMsg: - Enter.text_by_name( - Constants.Dashboard.Checklist.Reject.Modal.Comment.NAME, - rejectMsg, - wait_for_page=True) - Click.id( - Constants.Dashboard.Checklist.Reject.Modal.Button.ID, - wait_for_page=True) - except Exception as e: - errorMsg = "Failed to reject checklist." - raise Exception(errorMsg, e) - - @staticmethod - def add_line_item_audit_log(): - try: - log_txt = Helper.rand_string("randomString") - Enter.text_by_id("new-audit-log-text", log_txt, wait_for_page=True) - Click.id("submit-new-audit-lop-text") - Wait.text_by_css( - Constants.Dashboard.Checklist.AuditLog.LastLocalAuditLog.CSS, - log_txt, - wait_for_page=True) - return log_txt - except Exception as e: - errorMsg = "Failed to add audit log to line item." - raise Exception(errorMsg, e) - - @staticmethod - def click_on_checklist(user_content, checklistName, checklist_uuid=None): - FEOverview.click_on_vf(user_content) - if checklist_uuid is None: - checklist_uuid = DBGeneral.select_where_not_and_order_by_desc( - 'uuid', - Constants.DBConstants.IceTables.CHECKLIST, - 'name', - checklistName, - 'state', - Constants.ChecklistStates.Archive.TEXT, - 'create_time')[0] - Click.id("checklist-" + checklist_uuid, True) - - @staticmethod - def validate_reject_is_enabled(): - return Wait.id( - Constants.Dashboard.Checklist.Reject.ID, - wait_for_page=True) - - @staticmethod - def cl_to_next_stage(actualVfNameid): - Click.xpath("//div[@id='state-actions']/button", wait_for_page=True) - Wait.id(actualVfNameid, wait_for_page=True) - session.run_negative(lambda: Wait.css( - Constants.Default.BlockUI.CSS), "Error: CL to next stage failed.") - - @staticmethod - def search_by_vfname_for_not_local(user_content): - vfFullName = user_content[ - 'engagement_manual_id'] + ": " + user_content['vfName'] - if settings.DATABASE_TYPE != 'local': - Enter.text_by_id( - Constants.Dashboard.LeftPanel.SearchBox.ID, - user_content['vfName']) - Click.css(Constants.Dashboard.LeftPanel.SearchBox.Results.CSS) - Wait.text_by_id( - Constants.Dashboard.Overview.Title.ID, vfFullName) - - @staticmethod - def search_by_manual_id(manual_id): - Enter.text_by_id( - Constants.Dashboard.LeftPanel.SearchBox.ID, - manual_id, - wait_for_page=True) - Click.css( - Constants.Dashboard.LeftPanel.SearchBox.Results.CSS, - wait_for_page=True) - Wait.id(Constants.Dashboard.Overview.Title.ID) - - @staticmethod - def reject_checklist(newObj, checklistName): - Click.xpath("//button[2]") - vfName = newObj[0] - engLeadFullName = DBUser.get_el_name(vfName) - Enter.text_by_name( - Constants.Dashboard.Checklist.Reject.Modal.Comment.NAME, - "Reject state By :" + engLeadFullName) - Helper.internal_assert( - "Checklist: " + checklistName, - Get.by_css("span.state-title.ng-binding")) - Wait.text_by_id(Constants.Dashboard.Checklist.Reject.Modal.Button.ID, - Constants.Dashboard.Checklist.Reject.Modal.Button.TEXT) - Click.id(Constants.Dashboard.Checklist.Reject.Modal.Button.ID) - Wait.modal_to_dissappear() - - @staticmethod - def add_nsteps( - checklistUuid, - actualVfNameid, - myVfName, - checklistName, - newFileNames): - Click.id(actualVfNameid, wait_for_page=True) - checklistUuid = DBChecklist.select_where_cl_not_archive( - "uuid", "ice_checklist", "name", newFileNames[0], 1) - Click.id("checklist-" + checklistUuid, wait_for_page=True) - Wait.text_by_id(Constants.Dashboard.Checklist.Name.ID, newFileNames[0]) - FEChecklist.add_next_step_updated(checklistName, newFileNames[1]) - # vALIDATE SCROLLING - actualVfNameid = "clickable-" + myVfName - actualVfName = Get.by_id(actualVfNameid, wait_for_page=True) - if actualVfName != '': - Helper.internal_assert(myVfName, actualVfName) - - @staticmethod - def validate_multi_eng( - user_content, - checklist_content, - newEL_content, - actualVfNameid): - query = "UPDATE ice_user_profile SET role_id=2 WHERE email = '" + \ - str(newEL_content['email']) + "';" - DBGeneral.update_by_query(query) - FEWizard.invite_team_members_modal(newEL_content['email']) - # Fetch one AT&T user ID. - enguuid = DBGeneral.select_where( - "uuid", - "ice_engagement", - "engagement_manual_id", - user_content['engagement_manual_id'], - 1) - invitation_token = DBUser.select_invitation_token( - "invitation_token", - "ice_invitation", - "engagement_uuid", - enguuid, - newEL_content['email'], - 1) - URL = Constants.Default.InviteURL.Login.TEXT + invitation_token - FEGeneral.re_open(URL) - FEUser.login( - newEL_content['email'], - Constants.Default.Password.TEXT, - expected_element=actualVfNameid) - Click.id(actualVfNameid, wait_for_page=True) - count = None - try: - session.ice_driver.find_element_by_id( - "checklist-" + checklist_content['uuid']) - count += 1 - except BaseException: - logger.debug( - "check list not visible for EL invited : " + - str(newEL_content['email'])) - assertTrue(count is None) - query = "UPDATE ice_user_profile SET role_id=1 WHERE email = '" + \ - str(newEL_content['email']) + "';" - DBGeneral.update_by_query(query) - - @staticmethod - def create_cl_without_files(user_content): - FEOverview.click_on_vf(user_content) - Click.id("checklist-plus-" + user_content['engagement_uuid']) - Wait.id(Constants.Dashboard.Modal.CLOSE_BUTTON_ID) - checklistName = "NoAssociatedFiles" + \ - Helper.rand_string("randomString") - Enter.text_by_name("checkListName", checklistName) - Wait.xpath("//select") - if settings.DATABASE_TYPE == 'local': - Select(session.ice_driver.find_element_by_xpath("//select") - ).select_by_visible_text(Constants.Template.Heat.TEXT) - else: - Click.xpath("//select") - Click.xpath("//option[2]") - Click.id(Constants.Dashboard.LeftPanel.CreateChecklist.ID) - Wait.text_by_id(Constants.Dashboard.Checklist.Name.ID, checklistName) - - @staticmethod - def validate_audit_log(log_txt): - audit_log_list_text = Get.by_id( - Constants.Dashboard.Checklist.AuditLog.AuditLogList.ID, - wait_for_page=True) - try: - log_txt in audit_log_list_text - logger.debug("validate_audit_log PASS") - except Exception: - errorMsg = "Failed in validate_audit_log" - raise Exception(errorMsg) - - @staticmethod - def get_to_create_new_ns_modal(): - Click.id(Constants.Dashboard.Checklist.AddNS.ID, - wait_for_page=True) - Wait.text_by_css(Constants.Dashboard.Checklist.AddNS.CSS, - Constants.Dashboard.Checklist.TITLE) - Helper.internal_assert(Constants.Dashboard.Checklist.TITLE, Get.by_css( - Constants.Dashboard.Checklist.AddNS.CSS)) - Helper.internal_assert( - Constants.Dashboard.Checklist.AddNS.TITLE, - Get.by_css(Constants.FEGeneral.CSS.H2)) - - @staticmethod - def get_to_create_new_ns_modal_via_overview(): - Click.id(Constants.Dashboard.Overview.NextSteps.Add.ID, - wait_for_page=True) - Wait.text_by_css(Constants.Dashboard.Checklist.AddNS.CSS, - Constants.Dashboard.Overview.NextSteps.Add.TITLE) - Helper.internal_assert( - Constants.Dashboard.Checklist.AddNS.TITLE, - Get.by_css(Constants.FEGeneral.CSS.H2)) - - @staticmethod - def get_jenkins_log(): - Click.id(Constants.Dashboard.Checklist.JenkinsLog.ID, True) - Wait.text_by_id( - Constants.Dashboard.Checklist.JenkinsLog.Modal.Title.ID, - Constants.Dashboard.Checklist.JenkinsLog.Modal.Title.TEXT, True) - log = Get.by_id( - Constants.Dashboard.Checklist.JenkinsLog.Modal.Body.ID, True) - Helper.assertTrue( - Constants.Dashboard.Checklist.JenkinsLog.Modal.Body. - TEXT_SAMPLE in log, - "Jenkins log could not be viewed.") - Click.id(Constants.Dashboard.Modal.CLOSE_BUTTON_ID) - return log |