Esempio n. 1
0
 def validate_filtering_by_stage(user_content, stage):
     FEGeneral.re_open(Constants.Default.LoginURL.TEXT)
     # Validate Scrolling    #
     FEUser.login(user_content['el_email'], Constants.Default.Password.TEXT)
     FEOverview.click_on_vf(user_content)
     Click.id(Constants.Dashboard.Statuses.ID, wait_for_page=True)
     Wait.text_by_id("dashboard-title", "Statuses", wait_for_page=True)
     Wait.id("search-filter-stage")
     Select(session.ice_driver.find_element_by_id(
         "search-filter-stage")).select_by_visible_text(stage)
     Wait.id(Constants.Dashboard.Statuses.ExportExcel.ID,
             wait_for_page=True)
     engLeadID = DBUser.select_user_native_id(user_content['el_email'])
     # Query for fetching count of rows per stage.
     countOfEngInStagePerUser = DBUser.select_user_engagements_by_stage(
         stage, engLeadID)
     #    Calculate number of pages    #
     NUM_OF_RESULTS_PER_PAGES = 8
     number_of_pages = countOfEngInStagePerUser // NUM_OF_RESULTS_PER_PAGES
     logger.debug("Number of pages: " + str(number_of_pages))
     if (countOfEngInStagePerUser % NUM_OF_RESULTS_PER_PAGES != 0):
         number_of_pages += 1
     logger.debug("number_of_pages " + str(number_of_pages))  # Scroll    #
     Wait.id("engagements-pagination", wait_for_page=True)
     element = session.ice_driver.find_element_by_id(
         "engagements-pagination")
     element.location_once_scrolled_into_view
     Click.link_text(str(number_of_pages), wait_for_page=True)
Esempio n. 2
0
 def test_next_steps_ordering(self):
     user_content = API.VirtualFunction.create_engagement(
         wait_for_gitlab=False)
     user_content['session_token'] = "token " + \
         API.User.login_user(user_content['email'])
     steps_uuids = DB.VirtualFunction.return_expected_steps(
         user_content['engagement_uuid'],
         Constants.EngagementStages.INTAKE,
         user_content['email'])
     Frontend.User.login(
         user_content['email'], Constants.Default.Password.TEXT)
     Frontend.Overview.click_on_vf(user_content)
     Click.id(Constants.Dashboard.Overview.NextSteps.StateDropDown.ID)
     Click.link_text(
         Constants.Dashboard.Overview.NextSteps.
         StateDropDown.COMPLETED_LINK_TEXT)
     Click.id(Constants.Dashboard.Overview.NextSteps.StateDropDown.ID,
              wait_for_page=True)
     Frontend.Overview.validate_next_steps_order(steps_uuids)
     for idx, step_uuid in enumerate(steps_uuids):
         DB.VirtualFunction.update_next_step_position(
             step_uuid, len(steps_uuids) - idx)
     Frontend.General.refresh()
     Click.id(Constants.Dashboard.Overview.NextSteps.StateDropDown.ID,
              wait_for_page=True)
     Click.link_text(
         Constants.Dashboard.Overview.NextSteps.
         StateDropDown.COMPLETED_LINK_TEXT,
         wait_for_page=True)
     Click.id(Constants.Dashboard.Overview.NextSteps.StateDropDown.ID,
              wait_for_page=True)
     Frontend.Overview.validate_next_steps_order(
         list(reversed(steps_uuids)))
Esempio n. 3
0
 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)
Esempio n. 4
0
 def check_select_deselect_all_files():
     Click.id(Constants.Dashboard.Overview.NextSteps.Add.AssociatedFiles.ID)
     Click.link_text(Constants.Dashboard.Overview.NextSteps.Add.
                     AssociatedFiles.SELECT_ALL_FILES_NAME)
     Wait.text_by_id(
         Constants.Dashboard.Overview.NextSteps.Add.AssociatedFiles.ID,
         Constants.Dashboard.Overview.NextSteps.Add.AssociatedFiles.
         ALL_FILES_SELECTED)
Esempio n. 5
0
 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)
 def test_Validate_SSHkeyNS(self):
     ''' Insert a valid ssh key in wizard, validate "add ssh key"
         next step marked as completed.
     '''
     user_content = API.User.create_new_user()
     activationUrl = DB.User.get_activation_url(user_content['email'])
     Frontend.General.re_open(activationUrl)
     Frontend.User.login(user_content['email'],
                         Constants.Default.Password.TEXT)
     Wait.text_by_id(Constants.Toast.ID,
                     Constants.Dashboard.ActivateMsg.Success.TEXT)
     Click.id(Constants.Dashboard.Wizard.CloseButton.ID)
     Wait.modal_to_dissappear()
     Frontend.User.logout()
     Frontend.User.login(user_content['email'],
                         Constants.Default.Password.TEXT)
     Wait.text_by_css(Constants.Dashboard.LeftPanel.Title.CSS,
                      Constants.Dashboard.LeftPanel.Title.TEXT)
     logger.debug("click_on on + Dashboard")
     Click.id(Constants.Dashboard.LeftPanel.AddEngagement.ID)
     #    Wizard
     vfName = Frontend.Wizard.add_vf()
     Frontend.Wizard.add_vendor_contact()
     inviteEmail = Helper.rand_invite_email()
     Frontend.Wizard.invite_team_members(inviteEmail)
     sshKey = Frontend.Wizard.add_ssh_key()
     Frontend.User.go_to_account()
     Wait.id(user_content['email'])
     actualFullName = Get.value_by_name(
         Constants.Dashboard.Avatar.Account.FullName.NAME)
     Helper.internal_assert(user_content['full_name'], actualFullName)
     actualSSHkey = Get.value_by_name(
         Constants.Dashboard.Avatar.Account.SSHKey.NAME)
     Helper.internal_assert(sshKey, actualSSHkey)
     Click.id(Constants.Dashboard.Statuses.ID)
     #    VALIDATION FOR CONFIRMED BY ENG. LEAD
     engLeadEmail = DB.User.select_el_email(vfName)
     engagement_id = DB.General.select_where("engagement_id", "ice_vf",
                                             "name", vfName, 1)
     engagement_manual_id = DB.General.select_where("engagement_manual_id",
                                                    "ice_engagement",
                                                    "uuid", engagement_id,
                                                    1)
     myVfName = engagement_manual_id + ": " + vfName
     actualVfNameid = "clickable-" + myVfName
     Click.id(actualVfNameid)
     Click.id("overview-" + myVfName)
     Click.css("span.engagement_detail_menu_name")
     Click.xpath("//span[2]/multiselect/div/button")
     Click.link_text("Completed")
     elFullName = DB.General.select_where("full_name", "ice_user_profile",
                                          "email", engLeadEmail, 1)
     idNs = elFullName + "_Completed"
     actualConfirmBy = str(Get.by_id(idNs))
     expectedConfirmBy = "System Next Step  Completed: "
     Helper.internal_assert(expectedConfirmBy, actualConfirmBy)
Esempio n. 7
0
 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)
Esempio n. 8
0
 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
Esempio n. 9
0
 def validate_filtering_by_stage_with_page_ids(user_content, stage):
     FEOverview.click_on_vf(user_content)
     Click.id(Constants.Dashboard.Statuses.ID)
     # Stage Active Validation    #
     Wait.text_by_id("dashboard-title", "Statuses")
     Wait.id(Constants.Dashboard.Statuses.FilterDropdown.ID)
     Select(
         session.ice_driver.find_element_by_id(
             Constants.Dashboard.Statuses.FilterDropdown.ID)
     ).select_by_visible_text("Intake")
     Wait.page_has_loaded()
     Select(
         session.ice_driver.find_element_by_id(
             Constants.Dashboard.Statuses.FilterDropdown.ID)
     ).select_by_visible_text(stage)
     Wait.id(Constants.Dashboard.Statuses.ExportExcel.ID,
             wait_for_page=True)
     countIdsActive = 0
     engLeadID = DBUser.select_user_native_id(user_content['el_email'])
     countOfEngInStagePerUser = DBUser.select_user_engagements_by_stage(
         stage, engLeadID)  # Calculate number of pages    #
     NUM_OF_RESULTS_PER_PAGES = 8
     number_of_pages = countOfEngInStagePerUser // NUM_OF_RESULTS_PER_PAGES
     if countOfEngInStagePerUser <= NUM_OF_RESULTS_PER_PAGES:
         number_of_pages = 1
     if number_of_pages == 1:
         # Count all engagements on current page
         logger.debug("Number of pages: " + str(number_of_pages))
         ids = session.ice_driver.find_elements_by_xpath('//*[@id]')
         for ii in ids:
             if "starred-" in ii.get_attribute('id'):
                 # Print ii.tag_name (id name as string).
                 logger.debug(ii.get_attribute('id'))
                 countIdsActive += 1
     Wait.id(Constants.Dashboard.Statuses.ExportExcel.ID)
     if countIdsActive == countOfEngInStagePerUser:
         logger.debug("result right")
     else:
         if countOfEngInStagePerUser % NUM_OF_RESULTS_PER_PAGES != 0:
             number_of_pages += 1
         logger.debug("number_of_pages " + str(number_of_pages))
         #    Scroll    #
         Wait.id("engagements-pagination")
         element = session.ice_driver.find_element_by_id(
             "engagements-pagination")
         element.location_once_scrolled_into_view
         if number_of_pages > 1:
             Click.link_text(str(number_of_pages), wait_for_page=True)
Esempio n. 10
0
    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")
Esempio n. 11
0
 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")
Esempio n. 12
0
 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)
Esempio n. 13
0
 def go_to_signup_from_homepage():
     Click.link_text(Constants.Home.GetStarted.LINK_TEXT)
     Wait.text_by_css(Constants.Signup.Title.CSS,
                      Constants.Signup.Title.TEXT)
Esempio n. 14
0
 def logout():
     Click.id(Constants.Dashboard.Avatar.ID)
     Click.link_text(Constants.Dashboard.Avatar.Logout.LINK_TEXT)
Esempio n. 15
0
 def go_to_signup_from_login():
     Click.link_text(Constants.Login.Signup.LINK_TEXT, wait_for_page=True)
     Wait.text_by_css(Constants.Signup.Title.CSS,
                      Constants.Signup.Title.TEXT,
                      wait_for_page=True)
Esempio n. 16
0
 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)
 def test_current_status(self):
     user_content = API.VirtualFunction.create_engagement(
         wait_for_gitlab=False)
     vfName = user_content['vfName']
     Frontend.User.login(user_content['email'],
                         Constants.Default.Password.TEXT)  # new
     Frontend.Overview.click_on_vf(user_content)
     Frontend.User.go_to_account()
     Wait.id(user_content['email'])
     actualFullName = Get.value_by_name("fullname")
     Helper.internal_assert(user_content['full_name'], actualFullName)
     Click.id(Constants.Dashboard.Statuses.ID)
     Frontend.Overview.click_on_vf(user_content)
     Helper.internal_assert(
         "Current Status",
         Get.by_css(Constants.Dashboard.Overview.Status.Header.ID))
     Wait.text_by_id(Constants.Dashboard.Overview.Status.Description.ID,
                     "No status update has been provided yet.")
     Click.id(Constants.Dashboard.Avatar.ID)
     Click.link_text("Logout")
     engLeadEmail = DB.User.select_el_email(vfName)
     Frontend.User.relogin(engLeadEmail, Constants.Default.Password.TEXT)
     Frontend.Overview.click_on_vf(user_content)
     Click.css(Constants.Dashboard.Overview.Status.Add.CSS)
     Helper.internal_assert("Add Status",
                            Get.by_css("h3.modal-title.ng-binding"))
     Helper.internal_assert(
         "Use the form below to add the current status of the engagement.",
         Get.by_css("span.ng-binding"))
     Click.css("textarea[name=\"description\"]")
     Enter.text_by_css("textarea[name=\"description\"]",
                       "Add new Status",
                       wait_for_page=True)
     Helper.internal_assert(
         "Add status",
         Get.by_id(Constants.Dashboard.DetailedView.VFC.Save_button.ID))
     Click.id(Constants.Dashboard.DetailedView.VFC.Save_button.ID,
              wait_for_page=True)
     Helper.assertTrue("Last updated" in Get.by_id("status-update-details"))
     Wait.text_by_id(Constants.Dashboard.Overview.Status.Description.ID,
                     "Add new Status")
     Wait.css(Constants.Dashboard.Overview.Status.Edit.CSS)
     Wait.modal_to_dissappear()
     Click.css(Constants.Dashboard.Overview.Status.Edit.CSS)
     Helper.internal_assert("Current Status",
                            Get.by_css("h3.modal-title.ng-binding"))
     Click.css("textarea[name=\"description\"]")
     Enter.text_by_css("textarea[name=\"description\"]", "Update Status")
     Click.id(Constants.Dashboard.DetailedView.VFC.Save_button.ID)
     Wait.modal_to_dissappear()
     Wait.text_by_id(Constants.Dashboard.Overview.Status.Description.ID,
                     "Update Status")
     Frontend.User.logout()
     Frontend.User.relogin(user_content['email'],
                           Constants.Default.Password.TEXT)
     Frontend.Overview.click_on_vf(user_content)
     Helper.internal_assert(
         "Current Status",
         Get.by_css(Constants.Dashboard.Overview.Status.Header.ID))
     Wait.text_by_id(Constants.Dashboard.Overview.Status.Description.ID,
                     "Update Status")
Esempio n. 18
0
 def go_to_login_from_signup():
     Click.link_text(Constants.Signup.HaveAccount.LINK_TEXT)
     Wait.text_by_css(Constants.Login.Title.CSS, Constants.Login.Title.TEXT)
Esempio n. 19
0
 def go_to_reset_password_from_login():
     Click.link_text(Constants.Login.ResetPassword.LINK_TEXT)