Exemple #1
0
    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
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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)
Exemple #6
0
    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)
Exemple #7
0
    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()
Exemple #8
0
    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()
Exemple #9
0
    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
Exemple #10
0
    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)
Exemple #11
0
    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