예제 #1
0
 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)")
예제 #2
0
 def invite_x_users(user_content, vf_left_nav_id, x):
     for _ in range(x):  # Invites 2-5
         Click.id(vf_left_nav_id)
         Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID)
         FEWizard.add_vf()
         Click.id(Constants.Dashboard.Wizard.CloseButton.ID,
                  wait_for_page=True)
         FEWizard.invite_team_members_modal(user_content[1]['email'])
         FEGeneral.refresh()
예제 #3
0
 def edit_description_lineitem_and_save():
     desc = Helper.rand_string("randomString")
     Click.id(Constants.Dashboard.LeftPanel.EditChecklistTemplate.
              FIRST_LINE_ITEM_ID)
     Click.id(Constants.Dashboard.LeftPanel.EditChecklistTemplate.
              EDIT_LINE_ITEM_BTN)
     Enter.text_by_id(
         Constants.Dashboard.LeftPanel.EditChecklistTemplate.
         EDIT_LINE_ITEM_NAME, Helper.rand_string("randomString"))
     Click.id(Constants.Dashboard.LeftPanel.EditChecklistTemplate.
              EDIT_LINE_ITEM_DESC)
     editor_element = Get.wysiwyg_element_by_id(
         Constants.Dashboard.LeftPanel.EditChecklistTemplate.
         LINE_ITEM_DESC_TEXT_BOX)
     editor_element.clear()
     editor_element.send_keys(desc)
     Wait.page_has_loaded()
     actionChains = ActionChains(session.ice_driver)
     actionChains.double_click(editor_element).perform()
     Wait.page_has_loaded()
     Click.xpath(Constants.Dashboard.LeftPanel.EditChecklistTemplate.
                 WYSIWYG_BUTTON_BOLD)
     Click.id(Constants.Dashboard.LeftPanel.EditChecklistTemplate.
              EDIT_LINE_ITEM_BTN,
              wait_for_page=True)
     isBold = Wait.is_css_exists("b")
     while not isBold:
         Click.id(Constants.Dashboard.LeftPanel.EditChecklistTemplate.
                  EDIT_LINE_ITEM_BTN,
                  wait_for_page=True)
         actionChains.double_click(editor_element).perform()
         Click.xpath(Constants.Dashboard.LeftPanel.EditChecklistTemplate.
                     WYSIWYG_BUTTON_BOLD,
                     wait_for_page=True)
         Click.id(Constants.Dashboard.LeftPanel.EditChecklistTemplate.
                  EDIT_LINE_ITEM_BTN,
                  wait_for_page=True)
         isBold = Wait.is_css_exists("b")
     if isBold:
         FEChecklistTemplate.click_on_save_and_assert_success_msg()
     FEGeneral.refresh()
     Click.name(Constants.Dashboard.LeftPanel.EditChecklistTemplate.HEAT,
                wait_for_page=True)
     Click.id(Constants.Dashboard.LeftPanel.EditChecklistTemplate.
              FIRST_LINE_ITEM_ID,
              wait_for_page=True)
     Wait.css("b")
     Wait.text_by_css("b", desc, wait_for_page=True)
예제 #4
0
 def invite_x_users_and_verify_VF_appers_for_invited(user_content, engName):
     inviteEmail = Helper.rand_string(
         'randomString') + "@" + ServiceProvider.email
     vflist = FEInvite.create_x_vfs(user_content, engName, x=3)
     for vfName in vflist:
         # Fetch one AT&T user ID.
         engagement_id = DBGeneral.select_where("engagement_id", "ice_vf",
                                                "name", vfName, 1)
         engagement_manual_id = DBGeneral.select_where(
             "engagement_manual_id", "ice_engagement", "uuid",
             engagement_id, 1)
         engName = engagement_manual_id + ": " + vfName
         vf_left_nav_id = "clickable-" + engName
         Click.id(vf_left_nav_id)
         FEWizard.invite_team_members_modal(inviteEmail,
                                            wait_modal_to_disappear=False)
         FEGeneral.refresh()
         # validations
     FEInvite.validations_for_user2(user_content, inviteEmail, vflist)
예제 #5
0
 def check_notification_number_is_not_presented():
     FEGeneral.refresh()
     Wait.id_to_dissappear(
         Constants.Dashboard.Avatar.Notifications.Count.ID,
         wait_for_page=True)
 def validate_vf_version(newVFVersionName):
     FEGeneral.refresh()
     Wait.id(Constants.Dashboard.DetailedView.ValidationDetails.VFVersion.
             VF_VERSION_ID + newVFVersionName,
             wait_for_page=True)
 def validate_ecomp_version():
     FEGeneral.refresh()
     Wait.id(Constants.Dashboard.DetailedView.ECOMP.ID + Constants.
             Dashboard.DetailedView.ValidationDetails.ECOMPRelease.UNKNOW,
             wait_for_page=True)
 def validate_aic_version():
     FEGeneral.refresh()
     Wait.id(Constants.Dashboard.DetailedView.AIC.ID + "3.0",
             wait_for_page=True)
예제 #9
0
    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