def current_services(self): """Returns the count of active services displayed on dashboard""" view = navigate_to(self, 'DashboardAll') current_service = view.aggregate_card.get_count('Current Services') view = navigate_to(self, 'CurrentServices') view.flash.assert_no_error() self.create_view(MyServicesView, wait=300) return current_service
def retired_services(self): """Returns the count of retired services displayed on dashboard""" view = navigate_to(self, 'DashboardAll') retired_service = view.aggregate_card.get_count('Retired Services') view = navigate_to(self, 'RetiredServices') view.flash.assert_no_error() self.create_view(MyServicesView, wait=300) return retired_service
def retired_services(self): """Returns the count of retired services displayed on dashboard""" view = navigate_to(self, 'DashboardAll') retired_service = view.aggregate_card.get_count('Retired Services') view = navigate_to(self, 'RetiredServices') view.flash.assert_no_error() self.create_view(MyServicesView, wait=300) return retired_service
def current_services(self): """Returns the count of active services displayed on dashboard""" view = navigate_to(self, 'DashboardAll') current_service = view.aggregate_card.get_count('Current Services') view = navigate_to(self, 'CurrentServices') view.flash.assert_no_error() self.create_view(MyServicesView, wait=300) return current_service
def total_services(self): """Returns the total services(Integer) displayed on dashboard""" view = navigate_to(self, 'DashboardAll') total_service = view.dashboard_card.get_count('Total Services') view = navigate_to(self, 'TotalServices') view.flash.assert_no_error() self.create_view(MyServicesView, wait=300) return total_service
def launch_vm_console(self, catalog_item): navigate_to(self, 'VM Console') # TODO need to remove 0001 from the line below and find correct place/way to put it in code vm_obj = VM.factory(catalog_item.provisioning_data['catalog']['vm_name'] + '0001', catalog_item.provider, template_name=catalog_item.catalog_name) wait_for( func=lambda: vm_obj.vm_console, num_sec=30, delay=2, handle_exception=True, message="waiting for VM Console window to open" ) return vm_obj
def launch_vm_console(self, catalog_item): navigate_to(self, 'VM Console') # TODO need to remove 0001 from the line below and find correct place/way to put it in code vm_obj = VM.factory(catalog_item.prov_data['catalog']['vm_name'] + '0001', catalog_item.provider, template_name=catalog_item.catalog_name) wait_for( func=lambda: vm_obj.vm_console, num_sec=30, delay=2, handle_exception=True, message="waiting for VM Console window to open" ) return vm_obj
def total_service(self): """Returns the count of total services(Integer) displayed on dashboard""" view = navigate_to(self, 'DashboardAll') total_services = view.dashboard_card.get_count('Total Services') view = navigate_to(self, 'TotalServices') view.flash.assert_no_error() view = self.create_view(MyServicesView) assert view.is_displayed return total_services
def total_services(self): """Returns the total services(Integer) displayed on dashboard""" view = navigate_to(self, 'DashboardAll') total_service = view.dashboard_card.get_count('Total Services') view = navigate_to(self, 'TotalServices') view.flash.assert_no_error() self.create_view(MyServicesView, wait=300) return total_service
def retiring_soon(self): """Returns the count of retiring soon services displayed on dashboard""" view = navigate_to(self, 'DashboardAll') retiring_services = view.aggregate_card.get_count('Retiring Soon') view = navigate_to(self, 'RetiringSoon') view.flash.assert_no_error() view = self.create_view(MyServicesView) assert view.is_displayed return retiring_services
def launch_vm_console(self, catalog_item): navigate_to(self, 'VM Console') # TODO need to remove 0001 from the line below and find correct place/way to put it in code collection = catalog_item.provider.appliance.provider_based_collection(catalog_item.provider) vm_obj = collection.instantiate( '{}{}'.format(catalog_item.prov_data['catalog']['vm_name'], '0001'), catalog_item.provider, template_name=catalog_item.name ) wait_for( func=lambda: vm_obj.vm_console, num_sec=30, delay=2, handle_exception=True, message="waiting for VM Console window to open" ) return vm_obj
def total_services(self): """Returns the total services(Integer) displayed on dashboard""" view = navigate_to(self, 'DashboardAll') total_service = view.dashboard_card.get_count('Total Services') view = navigate_to(self, 'TotalServices') view.flash.assert_no_error() view = self.create_view(MyServicesView) wait_for( lambda: view.is_displayed, delay=15, num_sec=300, message="waiting for view to be displayed" ) assert view.is_displayed return total_service
def retired_services(self): """Returns the count of retired services displayed on dashboard""" view = navigate_to(self, 'DashboardAll') retired_service = view.aggregate_card.get_count('Retired Services') view = navigate_to(self, 'RetiredServices') view.flash.assert_no_error() view = self.create_view(MyServicesView) wait_for( lambda: view.is_displayed, delay=15, num_sec=300, message="waiting for view to be displayed" ) assert view.is_displayed return retired_service
def total_services(self): """Returns the total services(Integer) displayed on dashboard""" view = navigate_to(self, 'DashboardAll') total_service = view.dashboard_card.get_count('Total Services') view = navigate_to(self, 'TotalServices') view.flash.assert_no_error() view = self.create_view(MyServicesView) wait_for(lambda: view.is_displayed, delay=15, num_sec=300, message="waiting for view to be displayed") assert view.is_displayed return total_service
def retired_services(self): """Returns the count of retired services displayed on dashboard""" view = navigate_to(self, 'DashboardAll') retired_service = view.aggregate_card.get_count('Retired Services') view = navigate_to(self, 'RetiredServices') view.flash.assert_no_error() view = self.create_view(MyServicesView) wait_for(lambda: view.is_displayed, delay=15, num_sec=300, message="waiting for view to be displayed") assert view.is_displayed return retired_service
def launch_vm_console(self, catalog_item): navigate_to(self, 'VM Console') # TODO need to remove 0001 from the line below and find correct place/way to put it in code collection = catalog_item.provider.appliance.provider_based_collection(catalog_item.provider) vm_obj = collection.instantiate( '{}{}'.format(catalog_item.prov_data['catalog']['vm_name'], '0001'), catalog_item.provider, template_name=catalog_item.name ) wait_for( func=lambda: vm_obj.vm_console, num_sec=30, delay=2, handle_exception=True, message="waiting for VM Console window to open" ) return vm_obj
def login(self, user=None, **kwargs): if not user: username = conf.credentials['default']['username'] password = conf.credentials['default']['password'] cred = Credential(principal=username, secret=password) user = User(credential=cred) logged_in_view = self.appliance.ssui.create_view(SSUIBaseLoggedInPage) if logged_in_view.logged_in_as_user(user): return if logged_in_view.logged_in: logged_in_view.logout() login_view = navigate_to(self.appliance.server, 'LoginScreen') login_view.fill({ 'username': user.credential.principal, 'password': user.credential.secret, }) login_view.login.click() # Without this the login screen just exits after logging in time.sleep(3) login_view.flash.assert_no_error() self.browser.plugin.ensure_page_safe()
def service_power(self, power=None): view = navigate_to(self, 'Details') if self.appliance.version < "5.10": view.power_operations.item_select(power) else: view.power_operations.select(power) view.wait_displayed('60s')
def service_power(self, power=None): view = navigate_to(self, 'Details') if self.appliance.version < "5.10": view.power_operations.item_select(power) else: view.power_operations.select(power) view.wait_displayed('60s')
def test_ssui_ansible_playbook_stdout(appliance, ansible_service_catalog, ansible_service_request, ansible_service): """ Test standard output of ansible playbook service Bugzilla: 1437210 Polarion: assignee: nansari initialEstimate: 1/4h casecomponent: SelfServiceUI setup: 1. Create ansible playbook testSteps: 1. Create ansible playbook service catalog item 2. Create service catalog 3. Order service 4. Log in into SSUI 5. Navigate to My Services->Service details 6. check stdout of service expectedResults: 1. 2. 3. 4. 5. 6. able to see standard output """ ansible_service_catalog.order() ansible_service_request.wait_for_request() with appliance.context.use(ViaSSUI): view = navigate_to(ansible_service, "Details") assert view.standard_output.is_displayed wait_for(lambda: view.standard_output.text != "Loading...", timeout=30) assert "Hello World" in view.standard_output.text
def pending_requests(self): """Pending Request cannot be clicked so this method just returns the total number of requests displayed on dashboard. """ view = navigate_to(self, 'DashboardAll') pending_request = view.aggregate_card.get_count('Pending Requests') return pending_request
def denied_requests(self): """Denied Request cannot be clicked so this method just returns the total number of requests displayed on dashboard. """ view = navigate_to(self, 'DashboardAll') denied_request = view.aggregate_card.get_count('Denied Requests') return denied_request
def total_requests(self): """Total Request cannot be clicked so this method just returns the total number of requests displayed on dashboard. """ view = navigate_to(self, 'DashboardAll') total_request = view.dashboard_card.get_count('Total Requests') return total_request
def update(self, updates): view = navigate_to(self, 'Edit') view.fill_with(updates, on_change=view.save_button, no_change=view.cancel_button) view.flash.assert_no_error() view = self.create_view(DetailsMyServiceView, override=updates) assert view.is_displayed
def pending_requests(self): """Pending Request cannot be clicked so this method just returns the total number of requests displayed on dashboard. """ view = navigate_to(self, 'DashboardAll') pending_request = view.aggregate_card.get_count('Pending Requests') return pending_request
def total_requests(self): """Total Request cannot be clicked so this method just returns the total number of requests displayed on dashboard. """ view = navigate_to(self, 'DashboardAll') total_request = view.dashboard_card.get_count('Total Requests') return total_request
def denied_requests(self): """Denied Request cannot be clicked so this method just returns the total number of requests displayed on dashboard. """ view = navigate_to(self, 'DashboardAll') denied_request = view.aggregate_card.get_count('Denied Requests') return denied_request
def retire(self): view = navigate_to(self, 'Retire') view.retire.click() if self.appliance.version < "5.10": view = self.create_view(MyServicesView, wait='20s') assert view.notification.assert_message("{} was retired.".format(self.name)) else: view = self.create_view(DetailsMyServiceView, wait='20s') assert view.notification.assert_message("Service Retire - Request Created")
def update(self, updates): view = navigate_to(self, 'Edit', wait_for_view=True) view.fill_with(updates, on_change=view.save_button, no_change=view.cancel_button) view.flash.assert_no_error() view = self.create_view(DetailsMyServiceView, override=updates) # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message( "{} was edited.".format(self.name))
def update(self, updates): view = navigate_to(self, 'Edit', wait_for_view=True) view.fill_with(updates, on_change=view.save_button, no_change=view.cancel_button) view.flash.assert_no_error() view = self.create_view(DetailsMyServiceView, override=updates) # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message( "{} was edited.".format(self.name))
def update(self, updates): view = navigate_to(self, 'Edit') view.fill_with(updates, on_change=view.save_button, no_change=view.cancel_button) view.flash.assert_no_error() view = self.create_view(DetailsMyServiceView, override=updates) message_present, _ = wait_for(view.notification.assert_message, func_args=[f'{self.name} was edited.'], timeout=10) assert message_present
def retire(self): view = navigate_to(self, 'Retire') view.retire.click() if self.appliance.version < "5.10": view = self.create_view(MyServicesView, wait='20s') assert view.notification.assert_message("{} was retired.".format(self.name)) else: view = self.create_view(DetailsMyServiceView, wait='20s') assert view.notification.assert_message("Service Retire - Request Created") return self.appliance.collections.requests.instantiate(self.name, partial_check=True)
def edit_tags(self, tag, value): view = navigate_to(self, 'EditTagsFromDetails', wait_for_view=True) view.fill({'tag_category': tag, 'tag_name': value}) view.add_tag.click() view.save.click() view = self.create_view(DetailsMyServiceView) assert view.is_displayed # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message("Tagging successful.")
def service_power(self, power=None): view = navigate_to(self, 'Details', wait_for_view=True) view.power_operations.item_select(power) view = self.create_view(DetailsMyServiceView) wait_for( lambda: view.is_displayed, delay=3, num_sec=300, message="waiting for view to be displayed" ) # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10)
def order(self): view = navigate_to(self, 'ShoppingCart') wait_for( lambda: view.is_displayed, delay=5, num_sec=300, message="waiting for view to be displayed" ) view.order.click() # TODO - remove sleep when BZ 1496233 is fixed time.sleep(10) assert view.notification.assert_message("Shopping cart successfully ordered")
def service_power(self, power=None): view = navigate_to(self, 'Details', wait_for_view=True) view.power_operations.item_select(power) view = self.create_view(DetailsMyServiceView) wait_for( lambda: view.is_displayed, delay=3, num_sec=300, message="waiting for view to be displayed" ) # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10)
def retire(self): view = navigate_to(self, 'Retire', wait_for_view=True) view.retire.click() view = self.create_view(MyServicesView) assert wait_for( lambda: view.is_displayed, delay=3, num_sec=300, message="waiting for view to be displayed" ) # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message("{} was retired.".format(self.name))
def order(self): view = navigate_to(self, 'ShoppingCart') wait_for(lambda: view.is_displayed, delay=5, num_sec=300, message="waiting for view to be displayed") view.order.click() # TODO - remove sleep when BZ 1496233 is fixed time.sleep(10) assert view.notification.assert_message( "Shopping cart successfully ordered")
def edit_tags(self, tag, value): view = navigate_to(self, 'EditTagsFromDetails', wait_for_view=True) view.fill({'tag_category': tag, 'tag_name': value}) view.add_tag.click() view.save.click() view = self.create_view(DetailsMyServiceView) assert view.is_displayed # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message("Tagging successful.")
def update(self, updates): view = navigate_to(self, 'Edit') view.fill_with(updates, on_change=view.save_button, no_change=view.cancel_button) view.flash.assert_no_error() view = self.create_view(DetailsMyServiceView, override=updates) wait_for(lambda: view.is_displayed, delay=15, num_sec=300, message="waiting for view to be displayed")
def edit_tags(self, tag, value): view = navigate_to(self, 'EditTagsFromDetails') view.fill({'tag_category': tag, 'tag_name': value}) view.add_tag.click() view.save.click() view = self.create_view(DetailsMyServiceView) assert view.is_displayed message_present, _ = wait_for(view.notification.assert_message, func_args=["Tagging successful."], timeout=10) assert message_present
def retire(self): view = navigate_to(self, 'Retire', wait_for_view=True) view.retire.click() view = self.create_view(MyServicesView) assert wait_for( lambda: view.is_displayed, delay=3, num_sec=300, message="waiting for view to be displayed" ) # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message("{} was retired.".format(self.name))
def test_ssui_disable_notification(request, appliance, user_self_service_role, generic_catalog_item): """ Bugzilla: 1496233 Polarion: assignee: nansari startsin: 5.10 casecomponent: SelfServiceUI initialEstimate: 1/6h """ user, role = user_self_service_role product_features = [(['Everything', 'Service UI', 'Core', 'Notifications'], False)] role.update({'product_features': product_features}) # login with user having self service role with user: with appliance.context.use(ViaSSUI): appliance.server.login(user) # order service from catalog item serv_cat = ServiceCatalogs( appliance, catalog=generic_catalog_item.catalog, name=generic_catalog_item.name, ) view = navigate_to(serv_cat, 'Details') # Add Service to Shopping Cart view.add_to_shopping_cart.click() assert not view.notification.assert_message( "Item added to shopping cart") # Clear Service from the Shopping Cart view = navigate_to(serv_cat, 'ShoppingCart') view.clear.click(handle_alert=True) assert view.alert.read() == "Shopping cart is empty."
def set_ownership(self, owner, group): view = navigate_to(self, 'SetOwnership') view.fill({'select_owner': owner, 'select_group': group}) view.save_button.click() view = self.create_view(DetailsMyServiceView) assert view.is_displayed message_present, _ = wait_for(view.notification.assert_message, func_args=['Setting ownership.'], timeout=10) assert message_present view.browser.refresh() # WA until ManageIQ/integration_tests:7157 is solved
def delete(self): view = navigate_to(self, 'Details') if self.appliance.version >= "5.8": view.configuration.item_select('Remove') else: view.remove_service.click() view = self.create_view(RemoveServiceView) view.remove.click() view = self.create_view(MyServicesView, wait=300) # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message("{} was removed.".format(self.name))
def update(self, updates): view = navigate_to(self, 'Edit') view.fill_with(updates, on_change=view.save_button, no_change=view.cancel_button) view.flash.assert_no_error() view = self.create_view(DetailsMyServiceView, override=updates) wait_for( lambda: view.is_displayed, delay=15, num_sec=300, message="waiting for view to be displayed" ) # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message( "{} was edited.".format(self.name))
def delete(self): view = navigate_to(self, 'Details') if self.appliance.version >= "5.8": view.configuration.item_select('Remove') else: view.remove_service.click() view = self.create_view(RemoveServiceView) view.remove.click() view = self.create_view(MyServicesView, wait=300) message_present, _ = wait_for(view.notification.assert_message, func_args=[f"{self.name} was removed."], timeout=10) assert message_present
def set_ownership(self, owner, group): view = navigate_to(self, 'SetOwnership', wait_for_view=True) view.fill({'select_owner': owner, 'select_group': group}) view.save_button.click() view = self.create_view(DetailsMyServiceView) assert view.is_displayed # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) if self.appliance.version >= "5.8": assert view.notification.assert_message("Setting ownership.") else: assert view.notification.assert_message( "{} ownership was saved.".format(self.name))
def order(self): view = navigate_to(self, 'ShoppingCart') wait_for(lambda: view.is_displayed, delay=5, num_sec=300, message="waiting for view to be displayed") view.order.click() # TODO - remove sleep when BZ 1496233 is fixed time.sleep(10) assert view.notification.assert_message( "Shopping cart successfully ordered") return self.appliance.collections.requests.instantiate(self.name, partial_check=True)
def set_ownership(self, owner, group): view = navigate_to(self, 'SetOwnership', wait_for_view=True) view.fill({'select_owner': owner, 'select_group': group}) view.save_button.click() view = self.create_view(DetailsMyServiceView) assert view.is_displayed # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) if self.appliance.version >= "5.8": assert view.notification.assert_message("Setting ownership.") else: assert view.notification.assert_message("{} ownership was saved." .format(self.name))
def edit_tags(self, tag, value): view = navigate_to(self, 'EditTagsFromDetails') wait_for( lambda: view.tag_category.is_displayed, delay=15, num_sec=300, message="waiting for view to be displayed" ) view.fill({'tag_category': tag, 'tag_name': value}) view.add_tag.click() view.save.click() view = self.create_view(DetailsMyServiceView) assert view.is_displayed # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message("Tagging successful.")
def set_ownership(self, owner, group): view = navigate_to(self, 'SetOwnership') view.fill({'select_owner': owner, 'select_group': group}) view.save_button.click() view = self.create_view(DetailsMyServiceView) assert view.is_displayed # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) if self.appliance.version >= "5.8": assert view.notification.assert_message("Setting ownership.") else: assert view.notification.assert_message("{} ownership was saved." .format(self.name)) view.browser.refresh() # WA until ManageIQ/integration_tests:7157 is solved
def delete(self): view = navigate_to(self, 'Details') if self.appliance.version >= "5.8": view.configuration.item_select('Remove') else: view.remove_service.click() view = self.create_view(RemoveServiceView) view.remove.click() view = self.create_view(MyServicesView) wait_for( lambda: view.is_displayed, delay=15, num_sec=300, message="waiting for view to be displayed" ) assert view.is_displayed # TODO - remove sleep when BZ 1518954 is fixed time.sleep(10) assert view.notification.assert_message("{} was removed.".format(self.name))
def test_tag_dialog_catalog_item_ssui(appliance, catalog_item): """Tests tag dialog catalog item required field Testing BZ 1569470 Polarion: assignee: nansari casecomponent: SelfServiceUI caseimportance: high initialEstimate: 1/8h """ with appliance.context.use(ViaSSUI): dialog_values = {'service_level': "Gold"} service = ServiceCatalogs(appliance, name=catalog_item.name, dialog_values=dialog_values) view = navigate_to(service, 'Details') assert view.add_to_shopping_cart.disabled view.fill(dialog_values) assert not view.add_to_shopping_cart.disabled
def add_to_shopping_cart(self): view = navigate_to(self, 'Details') wait_for( lambda: view.is_displayed, delay=5, num_sec=300, message="waiting for view to be displayed" ) if self.stack_data: view.fill(self.stack_data) if self.dialog_values: view.fill(self.dialog_values) if self.ansible_dialog_values: view.fill(self.ansible_dialog_values) view.add_to_shopping_cart.click() view.flash.assert_no_error() view = self.create_view(DetailsServiceCatalogsView) # TODO - remove sleep when BZ 1496233 is fixed time.sleep(10) assert view.notification.assert_message("Item added to shopping cart")
def login(self, user=None, method=LOGIN_METHODS[-1]): if not user: username = conf.credentials['default']['username'] password = conf.credentials['default']['password'] cred = Credential(principal=username, secret=password) user = self.appliance.collections.users.instantiate(credential=cred) logged_in_view = self.appliance.ssui.create_view(SSUIBaseLoggedInPage) if logged_in_view.logged_in_as_user(user): return if logged_in_view.logged_in: logged_in_view.logout() login_view = navigate_to(self.appliance.server, 'LoginScreen') login_view.log_in(user, method=method) # Without this the login screen just exits after logging in time.sleep(3) login_view.flash.assert_no_error() self.browser.plugin.ensure_page_safe() logged_in_view.wait_displayed('10s') return logged_in_view
def prerequisite(self): return navigate_to(self.obj, 'Details', wait_for_view=True)
def monthly_charges(self): """Returns the chargeback data displayed on dashboard""" view = navigate_to(self, 'DashboardAll') return view.aggregate_card.get_count('Monthly Charges - This Month To Date')
def prerequisite(self): return navigate_to(self.obj, 'Details')