Example #1
0
 def change_region(self, region=None):
     """
     If region is passed, change to that region, otherwise select 1st from menu.
     """
     if region is None:
         region = BasePage(self).get_region_list()[0]
     BasePage(self).select_region(region)
Example #2
0
 def delete_bucket_from_view_page(self, bucket_name):
     BasePage(self).goto_buckets_view_via_menu()
     BucketsLanding(self).click_action_delete_bucket_on_view_page(
         bucket_name)
     DeleteBucketModal(self).delete_bucket()
     BasePage(self).goto_buckets_view_via_menu()
     BucketsLanding(self).verify_bucket_not_present_on_landing_page(
         bucket_name)
Example #3
0
 def delete_keypair_from_view_page(self, keypair_name):
     """
     Navigates to Keypair View via menu. Deletes keypair from view page. Verifies keypair was removed from view page.
     :param keypair_name:
     """
     BasePage(self).goto_keypair_view_page_via_menu()
     KeypairLanding(self).click_action_delete_keypair_on_view_page(keypair_name)
     DeleteKeypairModal(self).click_delete_keypair_submit_button()
     BasePage(self).goto_keypair_view_page_via_menu()
     KeypairLanding(self).verify_keypair_not_present_on_view_page(keypair_name)
Example #4
0
 def delete_keypair_from_detail_page(self, keypair_name):
     """
     Navigates to Keypair View via menu, finds keypair, goes to keypair detail page via keypair name link. Deletes keypair.
     :param keypair_name:
     """
     BasePage(self).goto_keypair_view_page_via_menu()
     KeypairLanding(self).click_keypair_link_on_view_page(keypair_name)
     KeypairDetailPage(self, keypair_name).click_action_delete_keypair_on_detail_page()
     DeleteKeypairModal(self).click_delete_keypair_submit_button()
     BasePage(self).goto_keypair_view_page_via_menu()
     KeypairLanding(self).verify_keypair_not_present_on_view_page(keypair_name)
Example #5
0
    def test_popup_item_is_found(self, browser, city):
        """Test case for checks that user can see first item of popup menu when input correct city name.

        Test case description:

        User moves to the page for choose a geo position. Switches off checkbox. Fills input field with correct
        city name. Popup menu becomes visible. After that, he can see first item of the popup menu.

        The programme checks that city name, that user is written, is equal city name from json object
        that was returned the first position of popup menu.

        """
        page = BasePage(browser, MAIN_URL)
        page.open()
        page.go_to_geo_page()
        page.deactivate_geo_checkbox()

        city_input_field = page.get_city_input_field()
        city_input_field.clear()
        city_input_field.send_keys(city)

        page.should_be_popup_menu()
        popup_menu = page.get_popup_menu()
        popup_menu_classes = popup_menu.get_attribute('class').split()
        comparison.element_within(popup_menu_classes, 'popup_visibility_visible')

        first_popup_item = page.get_first_geo_item()
        json_obj = ParseGeoPageObject(first_popup_item.get_attribute('data-bem'))
        geo_city_name = json_obj.get_city_name()
        comparison.is_equal(city, geo_city_name)
Example #6
0
 def delete_stack_from_detail_page(self, name):
     BasePage(self).goto_stacks_view_via_menu()
     StacksLandingPage(
         self).click_action_view_stack_details_on_landing_page(name)
     StackDetailPage(self, name).verify_stack_detail_page_loaded()
     StackDetailPage(self, name).click_action_delete_stack_on_detail_page()
     DeleteStackDialog(self).delete_stack()
Example #7
0
    def launch_instance_from_image_view_page(self, image_id_or_type, availability_zone = None,
                                               instance_type="t1.micro",
                                               number_of_of_instances = None, instance_name = None, key_name = "None (advanced option)",
                                               security_group = "default", user_data=None, monitoring=False, private_addressing=False, timeout_in_seconds=480):
        """
        Navigates to image view page via menu. Launches instance from given image.
        :param image_id_or_type:
        :param availability_zone:
        :param instance_type:
        :param number_of_of_instances:
        :param instance_name:
        :param key_name:
        :param security_group:
        :param user_data:
        :param monitoring:
        :param private_addressing:
        """

        BasePage(self).goto_images_view_via_menu()
        ImageLanding(self).click_action_launch_instance(image_id_or_type)
        LaunchInstanceWizard(self).launch_instance_step2(availability_zone, instance_type,
                                                        number_of_of_instances, instance_name, key_name,
                                                        security_group, user_data, monitoring, private_addressing)
        instance_id = InstanceLanding(self).get_id_of_newly_launched_instance()
        InstanceLanding(self).goto_instance_detail_page_via_link(instance_id)
        InstanceDetailPage(self, instance_id, instance_name).verify_instance_is_in_running_state(timeout_in_seconds=timeout_in_seconds)
        return {'instance_name': instance_name, 'instance_id':instance_id}
Example #8
0
 def launch_instance_from_instance_view_page(self, image = "centos",availability_zone = None,
                                            instance_type = "t1.micro: 1 CPUs, 256 memory (MB), 5 disk (GB,root device)",
                                            number_of_of_instances = None, instance_name = None, key_name = "None (advanced option)",
                                            security_group = "default", user_data=None, monitoring=False, private_addressing=False):
     """
     Navigates to instance view page via menu. Launches instance.
     :param image:
     :param availability_zone:
     :param instance_type:
     :param number_of_of_instances:
     :param instance_name:
     :param key_name:
     :param security_group:
     :param user_data:
     :param monitoring:
     :param private_addressing:
     """
     BasePage(self).goto_instances_via_menu()
     InstanceView(self).click_action_launch_instance_on_view_page()
     LaunchInstanceWizard(self).launch_instance(image, availability_zone, instance_type,
                                                 number_of_of_instances, instance_name, key_name,
                                                 security_group, user_data, monitoring, private_addressing)
     instance_id = InstanceView(self).get_id_of_newly_launched_instance()
     InstanceView(self).goto_instance_detail_page_via_link(instance_id)
     InstanceDetailPage(self, instance_id, instance_name).verify_instance_is_in_running_state()
     return {'instance_name': instance_name, 'instance_id':instance_id}
Example #9
0
 def verify_snapshot_not_present_on_lp(self, snapshot_id):
     """
     Navigates to snapshot landing page. Verifies snapshot not on landing page
     :param snapshot_id:
     """
     BasePage(self).goto_snapshots_view_via_menu()
     SnapshotLanding(self).verify_snapshot_not_present(snapshot_id)
Example #10
0
 def create_launch_config_and_asg_from_lc_lp(
         self,
         lc_name,
         asg_name,
         instance_type=None,
         image="centos",
         key_name="None (advanced option)",
         security_group="default",
         user_data_text=None,
         user_data_file_path=None,
         role=None,
         create_asg=True,
         kernel_id=None,
         ramdisk_id=None,
         enable_monitoring=True,
         availabilityzones=None,
         min_cpapacity=None,
         desired_capacity=None,
         max_capacity=None,
         grace_period=None,
         loadbalancers=None):
     BasePage(self).goto_launch_config_view_via_menu()
     LaunchConfigLanding(self).click_create_lc_button_on_landing_page()
     CreateLaunchConfigPage(self).create_new_launch_config_and_asg(
         lc_name,
         asg_name,
         instance_type=instance_type,
         image=image,
         key_name=key_name,
         security_group=security_group,
         user_data_text=user_data_text,
         user_data_file_path=user_data_file_path,
         role=role,
         create_asg=create_asg,
         kernel_id=kernel_id,
         ramdisk_id=ramdisk_id,
         enable_monitoring=enable_monitoring,
         availabilityzones=availabilityzones,
         min_cpapacity=min_cpapacity,
         desired_capacity=desired_capacity,
         max_capacity=max_capacity,
         grace_period=grace_period,
         loadbalancers=loadbalancers)
     BasePage(self).goto_asg_lp_via_menu()
     ASGLanding(self).verify_asg_present(asg_name)
     BasePage(self).goto_launch_config_view_via_menu()
     LaunchConfigLanding(self).verify_launch_config_is_present(lc_name)
Example #11
0
 def disassociate_eip_from_eip_detail_page(self, elastic_ip, instance_id):
     BasePage(self).goto_elastic_ip_view_via_menu()
     EipLanding(self).click_elastic_ip(elastic_ip)
     EipDetailPage(self, elastic_ip)
     EipDetailPage(self, elastic_ip).click_action_disassociate_ip_address_on_detail_page()
     DisassociateEipDialog(self).disassociate_eip()
     EipLanding(self).click_elastic_ip(elastic_ip)
     EipDetailPage(self, elastic_ip).verify_instance_id_off_detail_page(instance_id)
Example #12
0
 def allocate_eip_from_dashboard(self, number=1):
     """
     :param number: how many IPs to allocate
     :return: allocated IPs as a list of strings
     """
     BasePage(self).goto_dashboard_via_menu()
     Dashboard(self).click_allocate_elastic_ips_link()
     return AllocateEipDialog(self).allocate_elastic_ips(number=number)
Example #13
0
 def click_sortable_column_header_on_volumes_landing_page(self, column_name='name'):
     """
     Sort volumes table by a given column (see <th> element's st-sort attr for possible column_name values)
     :param column_name: header column name
     :type column_name: str
     """
     BasePage(self).goto_volumes_view_via_menu()
     VolumeLanding(self).click_sortable_column_header(column_name=column_name)
Example #14
0
 def allocate_eip_from_lp(self, number=1):
     """
     :param number: how many IPs to allocate
     :return: allocated IPs as a list of strings
     """
     BasePage(self).goto_elastic_ip_view_via_menu()
     EipLanding(self).click_allocate_elastic_ips_button()
     return AllocateEipDialog(self).allocate_elastic_ips(number=number)
Example #15
0
 def delete_object_from_contents_page(self, bucket_name, object_name):
     BasePage(self).goto_buckets_view_via_menu()
     BucketsLanding(self).click_action_view_contents_on_view_page(
         bucket_name)
     BucketContentsPage(
         self,
         bucket_name).click_action_delete_object_in_bucket(object_name)
     DeleteObjectModal(self).delete_object()
Example #16
0
 def verify_scaling_history(self, asg_name):
     """
     Must have scaling group created and should have some history, like if you create
     with min/desired/max = 1
     """
     BasePage(self).goto_asg_lp_via_menu()
     ASGLanding(self).goto_asg_detail_page_via_link(asg_name)
     ASGDetailPage(self).verify_scaling_history(asg_name)
Example #17
0
 def register_snapshot_as_an_image_from_snapshot_landing_page(self, snapshot_id, image_name, description=None, delete_on_terminate=True, register_as_windows_image=False):
     BasePage(self).goto_snapshots_view_via_menu()
     SnapshotLanding(self).click_action_register_as_image(snapshot_id)
     RegisterSnapshotAsImageModal(self).register_as_image(name=image_name, description=description, delete_on_terminate=delete_on_terminate, register_as_windows_image=register_as_windows_image)
     image_id = ImageDetailPage(self).get_image_id()
     image = {'image_name': image_name, 'image_id': image_id}
     print image
     return image
Example #18
0
 def import_keypair(self, keypair, keypair_name):
     """
     Navigates to Keypair View via menu. Imports keypair. Verifies keypair visible on Keypair View page.
     :param keypair_name:
     """
     BasePage(self).goto_keypair_view_page_via_menu()
     KeypairLanding(self).click_import_keypair_button()
     ImportKeypairDialog(self).import_keypair(keypair, keypair_name)
     KeypairDetailPage(self, keypair_name)
Example #19
0
 def create_keypair_from_keypair_view_page(self, keypair_name):
     """
     Navigates from Dashboard to keypair landing page via menu. Creates keypair, verifies keypair detail page is loaded after keypair creation.
     :param keypair_name:
     """
     BasePage(self).goto_keypair_view_page_via_menu()
     KeypairLanding(self).click_create_keypair_button_on_view_page()
     CreateKeypairDialog(self).create_keypair(keypair_name)
     KeypairDetailPage(self, keypair_name)
Example #20
0
 def release_eip_from_eip_lp(self, elastic_ip):
     """
     Release a single Elastic IP via the item row's actions menu
     :param elastic_ip: IP address to release
     """
     BasePage(self).goto_elastic_ip_view_via_menu()
     EipLanding(self).select_release_ip_actions_menu_item(elastic_ip)
     ReleaseEipDialog(self).release_elastic_ips()
     EipLanding(self).verify_elastic_ip_is_released(elastic_ip)
Example #21
0
    def batch_terminate_all_instances(self):
        """
        Navigates to instances view page and terminates all instances
        """

        BasePage(self).goto_instances_via_menu()
        InstanceLanding(self).click_terminate_all_instances_button()
        TerminateAllInstancesModal(self).click_terminate_all_instances_submit_button()
        InstanceLanding(self).verify_there_are_no_running_instances()
Example #22
0
 def add_tcp_22_rule_to_s_group(self, s_group_name, s_group_id):
     """
     Navigates to security group detail page. Opens TCP 22 port to user's IP.
     :param s_group_name:
     :param s_group_id:
     """
     BasePage(self).goto_security_groups_view_via_menu()
     SecurityGroupLanding(self).click_action_view_s_group_details_on_view_page(s_group_id)
     SecurityGroupDetailPage(self, s_group_name).add_rule_to_s_group_open_to_my_ip("TCP port 22")
Example #23
0
 def create_asg_from_dashboard(self,
                               asg_name,
                               launch_config_name,
                               availabilityzones=None,
                               min_capacity=None,
                               desired_capacity=None,
                               max_capacity=None,
                               grace_period=None,
                               loadbalancers=None):
     BasePage(self).goto_dashboard_via_menu()
     Dashboard(self).click_create_asg_link_from_dashboard()
     CreateASGPage(self).create_asg(asg_name, launch_config_name,
                                    availabilityzones, min_capacity,
                                    desired_capacity, max_capacity,
                                    grace_period, loadbalancers)
     ASGDetailPage(self).confirm_scaling_policy_modal()
     BasePage(self).goto_asg_lp_via_menu()
     ASGLanding(self).verify_asg_present(asg_name)
Example #24
0
 def add_ldap_rule_to_s_group(self, s_group_name, s_group_id):
     """
     Navigates to security group detail page. Opens TCP 389 port to all addresses.
     :param s_group_name:
     :param s_group_id:
     """
     BasePage(self).goto_security_groups_view_via_menu()
     SecurityGroupLanding(self).click_action_view_s_group_details_on_view_page(s_group_id)
     SecurityGroupDetailPage(self, s_group_name).add_rule_to_s_group_open_to_all_addresses("TCP port 389")
Example #25
0
 def verify_attach_notice_on_volume_monitoring_page(self, volume_id):
     """
     Volume Monitoring page should display notice to attach volume to instance when unattached
     :param volume_id:
     """
     BasePage(self).goto_volumes_view_via_menu()
     VolumeLanding(self).goto_volume_detail_page_via_actions(volume_id)
     VolumeDetailPage(self).goto_monitoring_tab(volume_id)
     VolumeDetailPage(self).verify_attach_notice_on_volume_monitoring_page(volume_id)
Example #26
0
 def verify_charts_on_volume_monitoring_page(self, volume_id):
     """
     Volume Monitoring page should display charts when attached to an instance
     :param volume_id:
     """
     BasePage(self).goto_volumes_view_via_menu()
     VolumeLanding(self).goto_volume_detail_page_via_actions(volume_id)
     VolumeDetailPage(self).goto_monitoring_tab(volume_id)
     VolumeDetailPage(self).verify_charts_on_volume_monitoring_page(volume_id)
Example #27
0
 def create_keypair_from_dashboard(self, keypair_name):
     """
     Navigates to Dashboard via menu, creates keypair. Verifies keypair visible on Keypair View page.
     :param keypair_name:
     """
     BasePage(self).goto_dashboard_via_menu()
     Dashboard(self).click_create_keypair_link_from_dashboard()
     CreateKeypairDialog(self).create_keypair(keypair_name)
     KeypairDetailPage(self, keypair_name)
Example #28
0
 def add_custom_tcp_rule_to_s_group(self, s_group_name, s_group_id):
     """
     Navigates to security group detail page. Opens TCP port 22-3389 to default group.
     :param s_group_name:
     :param s_group_id:
     """
     BasePage(self).goto_security_groups_view_via_menu()
     SecurityGroupLanding(self).click_action_view_s_group_details_on_view_page(s_group_id)
     SecurityGroupDetailPage(self, s_group_name).add_custom_tcp_rule_open_to_default_group("22","3389")
Example #29
0
 def delete_snapshot_from_landing_page(self, snapshot_id):
     """
     Navigates to landing page, deletes snapshot, verifies snapshot is gone from landing page.
     :param snapshot_id:
     """
     BasePage(self).goto_snapshots_view_via_menu()
     SnapshotLanding(self).click_action_delete_snapshot_on_view_page(snapshot_id)
     DeleteSnapshotModal(self).delete_snapshot()
     SnapshotLanding(self).verify_snapshot_not_present(snapshot_id)
Example #30
0
 def test_login_swipetips(self):
     '''密码为空登录验证滑块提示'''
     data = BasePage(
         self.driver).getCsvData(r'D:\test\xiangbobo\testdata\login.csv')
     name = data[4][0]
     pwd = data[4][1]
     exp = data[4][2]
     text = LoginPage(self.driver).login_swipeTips(name, pwd)
     self.assertEqual(text, exp)