def test_invalid_login(browser): # load root page page = RootPage(browser, auto_login=False) # do login with invalid credentials _login = page.login(username='******', password='******') logger.debug('Login status:{}'.format(_login)) logger.debug('Notifications on screen:{}'.format(page.notifications.items)) assert not _login assert page.notifications.contains( type='danger', text='Unauthorized. Error in username or password')
def test_login(browser): # load root page page = RootPage(browser, auto_login=False) # do login _login = page.login() logger.debug('Login status:{}'.format(_login)) assert _login # assert notifications logger.debug('Notifications on screen:{}'.format(page.notifications.items)) assert not page.notifications.contains(type=Notification.TYPE_DANGER) assert not page.notifications.contains(type=Notification.TYPE_WARNING)
def test_invalid_login(browser): # load root page page = RootPage(browser, auto_login=False) # do login with invalid credentials _login = page.login(username='******', password='******') logger.debug('Login status:{}'.format(_login)) logger.debug('Notifications on screen:{}'.format(page.notifications.items)) assert not _login assert page.notifications.contains( _type='danger', text='Unauthorized. ' 'The provided credentials are not valid to access Kiali. ' 'Please check your credentials and try again.')
def test_toggle(browser): # load root page page = RootPage(browser) page.main_menu.collapse() assert page.main_menu.is_collapsed page.main_menu.expand() assert not page.main_menu.is_collapsed
def test_menu(browser, kiali_client): # load root page page = RootPage(browser) # test available menus _response = kiali_client.get_response('getStatus') _products = _response['externalServices'] options_defined = [item.text for item in MainMenuEnum] if not _get_jaeger_url(_products): options_defined.remove(MainMenuEnum.DISTRIBUTED_TRACING.value) options_listed = page.main_menu.items logger.debug('menus[defined:{}, listed:{}]'.format(options_defined, options_listed)) assert is_equal(options_defined, options_listed), \ ('Menus mismatch: defined:{}, listed:{}'.format(options_defined, options_listed)) # navigate to menus for _menu in options_listed: if str(_menu) == MainMenuEnum.DISTRIBUTED_TRACING.text: assert _get_jaeger_url(_products) \ in page.main_menu.get_link(_menu).get_attribute('href') assert '_blank' == page.main_menu.get_link(_menu).get_attribute( 'target') continue logger.debug('Testing menu: {}'.format(_menu)) page.main_menu.select(_menu) assert page.main_menu.selected == _menu
def test_user_menu(browser): # load root page page = RootPage(browser) options_defined = [item.text for item in UserMenuEnum] options_listed = page.navbar.user_menu.options logger.debug('Menus[defined:{}, listed:{}]'.format(options_defined, options_listed)) assert is_equal(options_defined, options_listed), \ ('User menu mismatch: defined:{}, listed:{}'.format(options_defined, options_listed))
def test_help_menu(browser): # load root page page = RootPage(browser) # test available menus options_defined = [item.text for item in HelpMenuEnum] options_listed = page.navbar.help_menu.options logger.debug('help menus[defined:{}, listed:{}]'.format(options_defined, options_listed)) assert is_equal(options_defined, options_listed), \ ('Help menus mismatch: defined:{}, listed:{}'.format(options_defined, options_listed))
def test_about(browser, kiali_client): # load root page page = RootPage(browser) _about = page.navbar.about() assert _about.application_logo versions_ui = _about.versions _about.close() _response = kiali_client.get_response('getStatus') _products = _response['externalServices'] if (any(d['name'] == ApplicationVersionEnum.ISTIO.text for d in _products)): version_enum = ApplicationVersionEnum else: version_enum = ApplicationVersionUpstreamEnum versions_defined = [item.text for item in version_enum] logger.debug('Versions information in UI:{}'.format(versions_ui)) logger.debug('Application version keys: defined:{}, available:{}'.format( versions_defined, versions_ui.keys())) assert is_equal(versions_defined, versions_ui.keys()) # compare each versions # get version details from REST API # kiali core version _core_rest = '{}{}'.format( _response['status']['Kiali version'], ' ({})'.format(_response['status']['Kiali commit hash']) if _response['status']['Kiali commit hash'] != 'unknown' else '') # skip in case of code coverage run where the version is not set correctly during the build if "ENABLE_CODE_COVERAGE" not in os.environ or os.environ[ "ENABLE_CODE_COVERAGE"] != "true": assert versions_ui[version_enum.KIALI_CORE.text] == _core_rest # versions mismatch between console on UI # TODO: check with manual test team and enable this # _console_rest = '{} ({})'.format( # _response['status']['Kiali version'], _response['status']['Kiali version']) # assert versions_ui[ApplicationVersionEnum.KIALI_UI.text] == _console_rest # test other product versions assert versions_ui[version_enum.ISTIO.text] == _get_version( _products, version_enum.ISTIO.text) # check Prometheus version assert versions_ui[version_enum.PROMETHEUS.text] == _get_version( _products, 'Prometheus') # check Kubernetes version assert versions_ui[version_enum.KUBERNETES.text] == _get_version( _products, 'Kubernetes')
def test_menu(browser): # load root page page = RootPage(browser) # test available menus options_defined = [item.text for item in MainMenuEnum] options_listed = page.main_menu.items logger.debug('menus[defined:{}, listed:{}]'.format(options_defined, options_listed)) assert is_equal(options_defined, options_listed), \ ('Menus mismatch: defined:{}, listed:{}'.format(options_defined, options_listed)) # navigate to menus for _menu in options_listed: logger.debug('Testing menu: {}'.format(_menu)) page.main_menu.select(_menu) assert page.main_menu.selected == _menu
def test_about(browser, kiali_client): # load root page page = RootPage(browser) _about = page.navbar.about() assert _about.application_name == 'Kiali' versions_ui = _about.versions logger.debug('Versions information in UI:{}'.format(versions_ui)) versions_defined = [item.text for item in ApplicationVersionEnum] logger.debug('Application version keys: defined:{}, available:{}'.format( versions_defined, versions_ui.keys())) assert is_equal(versions_defined, versions_ui.keys()) # compare each versions # get version details from REST API _response = kiali_client.status() # kiali core version _core_rest = '{} ({})'.format( _response['status']['Kiali core version'], _response['status']['Kiali core commit hash']) assert versions_ui[ApplicationVersionEnum.KIALI_CORE.text] == _core_rest # versions mismatch between console on UI # TODO: check with manual test team and enable this # _console_rest = '{} ({})'.format( # _response['status']['Kiali core version'], _response['status']['Kiali console version']) # assert versions_ui[ApplicationVersionEnum.KIALI_UI.text] == _console_rest # test other product versions _products = _response['externalServices'] # check istio version assert versions_ui[ApplicationVersionEnum.ISTIO.text] == _get_version( _products, 'Istio') # check Prometheus version assert versions_ui[ApplicationVersionEnum.PROMETHEUS.text] == _get_version( _products, 'Prometheus') # check Kubernetes version assert versions_ui[ApplicationVersionEnum.KUBERNETES.text] == _get_version( _products, 'Kubernetes')
def test_masthead_status(openshift_client, browser): # load root page page = RootPage(browser) oc_apps = openshift_client.get_failing_applications(ISTIO_SYSTEM) ui_statuses = page.navbar.get_masthead_tooltip() assert is_equal(oc_apps, list(ui_statuses.keys()))