diff --git a/stacklight_tests/elasticsearch_kibana/kibana_ui/pages.py b/stacklight_tests/elasticsearch_kibana/kibana_ui/pages.py index e1cca53..5a2db64 100644 --- a/stacklight_tests/elasticsearch_kibana/kibana_ui/pages.py +++ b/stacklight_tests/elasticsearch_kibana/kibana_ui/pages.py @@ -23,6 +23,9 @@ class MainPage(base_pages.PageObject): _submit_button_locator = ( by.By.XPATH, '//button[@class="btn btn-primary"][@type="submit"]') _error_field_locator = (by.By.CLASS_NAME, 'panel-title') + _main_menu_locator = ( + by.By.CLASS_NAME, 'navbar-nav' + ) def __init__(self, driver): super(MainPage, self).__init__(driver) diff --git a/stacklight_tests/helpers/ui/ui_settings.py b/stacklight_tests/helpers/ui/ui_settings.py index 6c1ea83..6b7d2c4 100644 --- a/stacklight_tests/helpers/ui/ui_settings.py +++ b/stacklight_tests/helpers/ui/ui_settings.py @@ -32,4 +32,4 @@ implicit_wait = os.environ.get('IMPLICIT_WAIT', 5) # Set the amount of time to wait for a page load to complete # before throwing an error. -page_timeout = os.environ.get('PAGE_TIMEOUT', 15) +page_timeout = os.environ.get('PAGE_TIMEOUT', 25) diff --git a/stacklight_tests/influxdb_grafana/grafana_ui/api.py b/stacklight_tests/influxdb_grafana/grafana_ui/api.py index 8741b80..2648437 100644 --- a/stacklight_tests/influxdb_grafana/grafana_ui/api.py +++ b/stacklight_tests/influxdb_grafana/grafana_ui/api.py @@ -56,19 +56,20 @@ def check_grafana_dashboards(url): dashboard_page.get_back_to_home() -def _check_available_menu_items_for_user(user, url, authz): +def _check_available_menu_items_for_user(user, url, authz, is_admin=False): logger.info("Checking Grafana service at {} with LDAP authorization " "for {} user".format(url, user[0])) admin_panels = ["Dashboards", "Data Sources", "Plugins", "Admin"] viewer_panel = admin_panels[:1] if authz else admin_panels + expected_panels = admin_panels if is_admin else viewer_panel with ui_tester.ui_driver(url, "Grafana", login_key_xpath) as driver: home_page = _get_main_page(driver, user) menu_items = [name.text for name in home_page.main_menu.items] - msg = "Not all required panels are available in main menu." + msg = ("Not all required panels are available in main menu, " + "expected: {}, found: {}.".format(expected_panels, menu_items)) asserts.assert_true( - (admin_panels if ("uadmin" in user) - else viewer_panel) == menu_items, + expected_panels == menu_items, msg ) @@ -76,5 +77,5 @@ def _check_available_menu_items_for_user(user, url, authz): def check_grafana_ldap(grafana_url, authz=False, uadmin=("uadmin", "uadmin"), uviewer=("uviewer", "uviewer")): - _check_available_menu_items_for_user(uadmin, grafana_url, authz) + _check_available_menu_items_for_user(uadmin, grafana_url, authz, True) _check_available_menu_items_for_user(uviewer, grafana_url, authz)