def test_iterate_all_groups_pages(self): helpers = Helpers() all_groups_page = helpers.segue_to_page(self.driver, 'all_groups') page_number = 1 click_next = True while click_next: all_groups_page.wait_until_groups_table_loaded() all_groups_links = all_groups_page.get_group_links_on_cur_page() num_of_links = len(all_groups_links) # print('page number', page_number) for i in range(num_of_links): # print('Testing group page:', all_groups_links[i].text) all_groups_links[i].click() all_groups_detail_page = page.GroupProfilePage(self.driver) assert all_groups_detail_page.is_page_valid() self.driver.back() all_groups_page.wait_until_groups_table_loaded() all_groups_page.click_cur_page(page_number) all_groups_page.wait_until_groups_table_loaded() all_groups_links = all_groups_page.get_group_links_on_cur_page( ) next_button = all_groups_page.get_next_button() if next_button.get_attribute('class').split()[-1] == 'disabled': click_next = False else: next_button.click() page_number += 1
def test_add_and_delete_secret(self): # print('9) test_add_and_delete_secret') group_name = 'my-group' cluster_name = 'my-cluster' secret_name = 'test-secret-with-helper' key_name = 'test-key-name' key_contents = 'test-key-contents' helpers = Helpers() # add the secret helpers.add_secret(self.driver, cluster_name=cluster_name, secret_name=secret_name, key_name=key_name, key_contents=key_contents) # confirm secret added created_secret = '{}: {}'.format(cluster_name, secret_name) group_profile_page = page.GroupProfilePage(self.driver) assert group_profile_page.is_page_valid() created_secret_link = group_profile_page.get_secret_link( created_secret) assert created_secret == created_secret_link.text created_secret_link.click() # delete the secret helpers.delete_secret(self.driver, group_name, cluster_name, secret_name)
def test_revoke_group_from_cluster(self): # print('8) test_revoke_group_from_cluster') helpers = Helpers() # add group added_group_name = 'test-add-group-to-revoke-from-cluster' # print('adding group {} for delete group test'.format(added_group_name)) helpers.add_group(self.driver, group_name=added_group_name) # add group to cluster group_name = 'my-group' cluster_name = 'my-cluster' my_groups_page = helpers.segue_to_page(self.driver, 'my_groups') my_groups_page.wait_until_groups_table_loaded() # enter the group page group_link = my_groups_page.get_group_link(group_name) group_link.click() group_profile_page = page.GroupProfilePage(self.driver) assert group_profile_page.is_page_valid() group_profile_page.wait_until_page_loaded() # enter the cluster page cluster_link = group_profile_page.get_cluster_link(cluster_name) cluster_link.click() cluster_profile_page = page.ClusterProfilePage(self.driver) assert cluster_profile_page.is_page_valid() cluster_profile_page.wait_until_page_loaded() # test group selector cluster_profile_page.set_group_selector(added_group_name) add_group_btn = cluster_profile_page.get_add_group_btn(cluster_name) add_group_btn.click() # confirm group added to cluster check_added_group = cluster_profile_page.get_added_group_link( group_name, cluster_name, added_group_name) assert added_group_name == check_added_group.text # revoke group revoke_group_btn = cluster_profile_page.get_revoke_btn( added_group_name) revoke_group_btn.click() # confirm group revoke check_added_group = cluster_profile_page.get_added_group_link( group_name, cluster_name, added_group_name) assert not check_added_group # delete group helpers.delete_group(self.driver, added_group_name)
def test_edit_group_with_wrong_inputs(self): # print('6) test_edit_new_group_with_wrong_inputs') helpers = Helpers() # add group for edit with wrong input group_name = 'test-edit-group-wrong-input' # print('adding group {} for edit group test'.format(group_name)) helpers.add_group(self.driver, group_name=group_name) # edit with wrong input # print('test_edit_group_with_wrong_input') my_groups_page = helpers.segue_to_page(self.driver, 'my_groups') my_groups_page.wait_until_groups_table_loaded() group_link = my_groups_page.get_group_link(group_name) group_link.click() group_profile_page = page.GroupProfilePage(self.driver) assert group_profile_page.is_page_valid() group_profile_page.wait_until_page_loaded() group_profile_page.get_edit_btn().click() group_edit_page = page.GroupEditPage(self.driver) assert group_edit_page.is_page_valid() group_edit_page.wait_until_form_loaded() # test invalid email input invalid_email = 'selenium-testslateci.io' helpers.edit_group_on_edit_page(group_edit_page, email=invalid_email) email_field = group_edit_page.get_email_field() message = email_field.get_attribute('validationMessage') assert message == "Please include an '@' in the email address. '{}' is missing an '@'.".format( invalid_email) # test missing phone number missing_phone_number = '' helpers.edit_group_on_edit_page(group_edit_page, phone_number=missing_phone_number) phone_number_field = group_edit_page.get_phone_number_field() message = phone_number_field.get_attribute('validationMessage') assert message == 'Please fill out this field.' # # test empty field of science # empty_field_of_science = '' # self.edit_group_on_edit_page(group_edit_page, field_of_science=empty_field_of_science) # science_field = group_edit_page.get_science_field() # message = science_field.get_attribute('validationMessage') # print(message) # delete the group helpers.delete_group(self.driver, group_name)
def test_edit_group(self): # print('5) test_edit_group') helpers = Helpers() # add group for edit group_name = 'test-edit-group' # print('adding group {} for edit group test'.format(group_name)) helpers.add_group(self.driver, group_name=group_name) # edit group # print('test_edit_group') my_groups_page = helpers.segue_to_page(self.driver, 'my_groups') my_groups_page.wait_until_groups_table_loaded() group_link = my_groups_page.get_group_link(group_name) group_link.click() group_profile_page = page.GroupProfilePage(self.driver) assert group_profile_page.is_page_valid() group_profile_page.wait_until_page_loaded() group_profile_page.get_edit_btn().click() group_edit_page = page.GroupEditPage(self.driver) assert group_edit_page.is_page_valid() group_edit_page.wait_until_form_loaded() new_email = '*****@*****.**' new_phone_number = '777-7777' new_field_of_science = 'Physics' new_description = 'Testing group edit functionality' helpers.edit_group_on_edit_page(group_edit_page, email=new_email, phone_number=new_phone_number, field_of_science=new_field_of_science, description=new_description) # confirm group info updated group_profile_page.wait_until_page_loaded() assert group_profile_page.is_page_valid() assert group_profile_page.get_field_of_science( ) == new_field_of_science assert group_profile_page.get_email() == new_email assert group_profile_page.get_phone_number() == new_phone_number # delete the group helpers.delete_group(self.driver, group_name)
def test_iterate_secrets_pages(self): helpers = Helpers() # create a group of secrets added_secrets = helpers.add_mul_secrets(self.driver) # iterate secrets secrets_page = helpers.segue_to_page(self.driver, 'secrets') page_number = 1 click_next = True while click_next: secrets_page.wait_until_secrets_table_loaded() secrets_links = secrets_page.get_secret_links_on_cur_page() num_of_links = len(secrets_links) # print(num_of_links) # print('page number', page_number) for i in range(num_of_links): # print('Testing secret page:', secrets_links[i].text) secrets_links[i].click() group_profile_page = page.GroupProfilePage(self.driver) assert group_profile_page.is_page_valid() self.driver.back() secrets_page.wait_until_secrets_table_loaded() secrets_page.click_cur_page(page_number) secrets_page.wait_until_secrets_table_loaded() secrets_links = secrets_page.get_secret_links_on_cur_page() next_button = secrets_page.get_next_button() if next_button.get_attribute('class').split()[-1] == 'disabled': click_next = False else: next_button.click() page_number += 1 # delete the added secrets for secret in added_secrets['secret_names']: helpers.delete_secret(self.driver, added_secrets['group_name'], added_secrets['cluster_name'], secret)
def add_group(self, driver, group_name='valid-name', phone_number='555-5555', email='*****@*****.**', field_of_science='Biology'): my_groups_page = self.segue_to_page(driver, 'my_groups') my_groups_page.get_register_new_group_btn().click() create_new_group = page.CreateNewGroupPage(driver) # create_new_group.wait_until_form_loaded() create_new_group.fill_group_name(group_name) create_new_group.fill_phone_number(phone_number) create_new_group.fill_email(email) create_new_group.fill_field_of_science(field_of_science) create_new_group.create_group() group_profile_page = page.GroupProfilePage(driver) group_profile_page.wait_until_page_loaded() assert group_profile_page.is_page_valid() # confirm group added assert group_name == group_profile_page.get_group_name()
def in_progress_test_edit_cluster_in_group(self): helpers = Helpers() group_name = 'my-group' cluster_name = 'my-cluster' my_groups_page = helpers.segue_to_page(self.driver, 'my_groups') my_groups_page.wait_until_groups_table_loaded() # enter the group page group_link = my_groups_page.get_group_link(group_name) group_link.click() group_profile_page = page.GroupProfilePage(self.driver) assert group_profile_page.is_page_valid() group_profile_page.wait_until_page_loaded() # enter the cluster page cluster_link = group_profile_page.get_cluster_link(cluster_name) cluster_link.click() cluster_profile_page = page.ClusterProfilePage(self.driver) assert cluster_profile_page.is_page_valid() cluster_profile_page.wait_until_page_loaded() # test edit button edit_info_btn = cluster_profile_page.get_edit_info_btn() edit_info_btn.click() cluster_edit_page = page.ClusterEditPage(self.driver) assert cluster_edit_page.is_page_valid() cluster_edit_page.wait_until_page_loaded() cluster_edit_page.set_org_field('SLATE1') # cluster_edit_page.set_latitude_field('0.05') # cluster_edit_page.set_longitude_field('0.06') cluster_edit_page.get_latitude_field().clear() cluster_edit_page.get_longitude_field().clear() cluster_edit_page.get_update_btn().click() nextPage = page.BasePage(self.driver) assert nextPage.is_page_valid()
def delete_secret(self, driver, group_name, cluster_name, secret_name): # enter group profile page my_groups_page = self.segue_to_page(driver, 'my_groups') my_groups_page.wait_until_groups_table_loaded() group_link = my_groups_page.get_group_link(group_name) group_link.click() # prepare to delete secret created_secret = '{}: {}'.format(cluster_name, secret_name) group_profile_page = page.GroupProfilePage(driver) assert group_profile_page.is_page_valid() # group_profile_page.wait_until_page_loaded # click secrets tab group_profile_page.get_secrets_tab().click() created_secret_link = group_profile_page.get_secret_link( created_secret) assert created_secret == created_secret_link.text created_secret_link.click() # expand the secret_content_field # find the delete button and click() secret_field = '{}-{}'.format( cluster_name, secret_name) # 'my-cluster-test-delete-secret' group_profile_page.get_secret_link_delete_btn(group_name, secret_field).click() try: # print('attempt to delete secret: {}'.format(secret_name)) alert = group_profile_page.switch_to_alert_popup() alert.accept() # print('secret {} is deleted'.format(secret_name)) except: # print('Error occur at confirming secret delete') pass # confirm deletion created_secret_link = group_profile_page.get_secret_link( created_secret) assert not created_secret_link
def add_secret(self, driver, group_name='my-group', cluster_name='my-cluster', secret_name='valid-secret-name', key_name='valid-key-name', key_contents='valid-key-contents'): # group_name = 'my-group' my_groups_page = self.segue_to_page(driver, 'my_groups') my_groups_page.wait_until_groups_table_loaded() group_link = my_groups_page.get_group_link(group_name) group_link.click() group_profile_page = page.GroupProfilePage(driver) assert group_profile_page.is_page_valid() group_profile_page.wait_until_page_loaded group_profile_page.get_secrets_tab().click() group_profile_page.get_new_secret_btn().submit() secrets_create_page = page.SecretsCreatePage(driver) secrets_create_page.fill_form_and_submit(cluster_name, secret_name, key_name, key_contents)
def delete_group(self, driver, group_name): my_groups_page = self.segue_to_page(driver, 'my_groups') my_groups_page.wait_until_groups_table_loaded() group_link = my_groups_page.get_group_link(group_name) group_link.click() group_profile_page = page.GroupProfilePage(driver) assert group_profile_page.is_page_valid() group_profile_page.wait_until_page_loaded() group_profile_page.get_delete_group_btn().click() try: alert = group_profile_page.switch_to_alert_popup() # time.sleep(1) alert.accept() # alert.dismiss() # print('Alert pop up accepted') except: # print('Error occur at confirming group delete') pass # confirm group deleted group_link = my_groups_page.get_group_link(group_name) assert not group_link