... kiali_client = openshift_client = browser = @pytest.mark.p_crud_resource @pytest.mark.p_crud_group2 def test_virtual_service(kiali_client, openshift_client, browser): gateway = get_yaml(istio_objects_path.strpath, GATEWAY_LINK) gateway_dict = get_dict(istio_objects_path.strpath, GATEWAY_LINK) _istio_config_create(openshift_client, gateway_dict, gateway, 'Gateway', 'networking.istio.io/v1alpha3', namespace=BOOKINFO_2) virtual_service = get_yaml(istio_objects_path.strpath, VIRTUAL_SERVICE) virtual_service_dict = get_dict(istio_objects_path.strpath, VIRTUAL_SERVICE) _create_dest_rule_vs(openshift_client, DEST_RULE_VS_REVIEWS) _istio_config_test(kiali_client, openshift_client, browser, virtual_service_dict, virtual_service, [ {'name': IstioConfigPageFilter.ISTIO_TYPE.text, 'value': IstioConfigObjectType.VIRTUAL_SERVICE.text}, {'name': IstioConfigPageFilter.CONFIG.text, 'value': IstioConfigValidationType.VALID.text}, {'name': IstioConfigPageFilter.ISTIO_NAME.text, 'value': virtual_service_dict.metadata.name} ], namespace=BOOKINFO_2, kind='VirtualService', api_version='networking.istio.io/v1alpha3', service_name=REVIEWS, check_service_details=False, delete_istio_config=False) > _vs_gateway_link_test(kiali_client, openshift_client, browser, gateway_dict, kind='Gateway', vs_name=virtual_service_dict.metadata.name, namespace=BOOKINFO_2) kiali_qe/tests/test_istio_objects_crud.py:201: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ kiali_qe/tests/test_istio_objects_crud.py:768: in _vs_gateway_link_test tests.assert_details(name=config_dict.metadata.name, kiali_qe/tests/__init__.py:2175: in assert_details config_details_oc = self.openshift_client._istio_config(api_version='v1beta1', kind=object_type) kiali_qe/rest/openshift_api.py:127: in _istio_config return self._resource(kind=kind, api_version=api_version) kiali_qe/rest/openshift_api.py:76: in _resource return self._dyn_client.resources.get(kind=kind, api_version=api_version) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'api_version': 'v1beta1', 'kind': 'Gateway'}, results = [] def get(self, **kwargs): """ Same as search, but will throw an error if there are multiple or no results. If there are multiple results and only one is an exact match on api_version, that resource will be returned. """ results = self.search(**kwargs) # If there are multiple matches, prefer exact matches on api_version if len(results) > 1 and kwargs.get('api_version'): results = [ result for result in results if result.group_version == kwargs['api_version'] ] # If there are multiple matches, prefer non-List kinds if len(results) > 1 and not all([isinstance(x, ResourceList) for x in results]): results = [result for result in results if not isinstance(result, ResourceList)] # if multiple resources are found that share a GVK, prefer the one with the most supported verbs if len(results) > 1 and len(set((x.group_version, x.kind) for x in results)) == 1: if len(set(len(x.verbs) for x in results)) != 1: results = [max(results, key=lambda x: len(x.verbs))] if len(results) == 1: return results[0] elif not results: > raise ResourceNotFoundError('No matches found for {}'.format(kwargs)) E kubernetes.dynamic.exceptions.ResourceNotFoundError: No matches found for {'kind': 'Gateway', 'api_version': 'v1beta1'} /opt/app-root/lib64/python3.8/site-packages/openshift/dynamic/discovery.py:186: ResourceNotFoundError ... ... kiali_client = openshift_client = browser = pick_namespace = ._pick_namespace at 0x7fa577c499d0> @pytest.mark.p_crud_resource @pytest.mark.p_crud_group3 def test_gateway(kiali_client, openshift_client, browser, pick_namespace): gateway = get_yaml(istio_objects_path.strpath, GATEWAY) gateway_dict = get_dict(istio_objects_path.strpath, GATEWAY) namespace = pick_namespace(BOOKINFO_2) > _istio_config_test(kiali_client, openshift_client, browser, gateway_dict, gateway, [ {'name': IstioConfigPageFilter.ISTIO_TYPE.text, 'value': IstioConfigObjectType.GATEWAY.text}, {'name': IstioConfigPageFilter.ISTIO_NAME.text, 'value': gateway_dict.metadata.name} ], namespace=namespace, kind='Gateway', api_version='networking.istio.io/v1alpha3', service_name=REVIEWS, check_service_details=False) kiali_qe/tests/test_istio_objects_crud.py:366: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ kiali_qe/tests/test_istio_objects_crud.py:706: in _istio_config_test _istio_config_details_test(kiali_client, kiali_qe/tests/test_istio_objects_crud.py:743: in _istio_config_details_test tests.assert_details(name=config_dict.metadata.name, kiali_qe/tests/__init__.py:2175: in assert_details config_details_oc = self.openshift_client._istio_config(api_version='v1beta1', kind=object_type) kiali_qe/rest/openshift_api.py:127: in _istio_config return self._resource(kind=kind, api_version=api_version) kiali_qe/rest/openshift_api.py:76: in _resource return self._dyn_client.resources.get(kind=kind, api_version=api_version) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'api_version': 'v1beta1', 'kind': 'Gateway'}, results = [] def get(self, **kwargs): """ Same as search, but will throw an error if there are multiple or no results. If there are multiple results and only one is an exact match on api_version, that resource will be returned. """ results = self.search(**kwargs) # If there are multiple matches, prefer exact matches on api_version if len(results) > 1 and kwargs.get('api_version'): results = [ result for result in results if result.group_version == kwargs['api_version'] ] # If there are multiple matches, prefer non-List kinds if len(results) > 1 and not all([isinstance(x, ResourceList) for x in results]): results = [result for result in results if not isinstance(result, ResourceList)] # if multiple resources are found that share a GVK, prefer the one with the most supported verbs if len(results) > 1 and len(set((x.group_version, x.kind) for x in results)) == 1: if len(set(len(x.verbs) for x in results)) != 1: results = [max(results, key=lambda x: len(x.verbs))] if len(results) == 1: return results[0] elif not results: > raise ResourceNotFoundError('No matches found for {}'.format(kwargs)) E kubernetes.dynamic.exceptions.ResourceNotFoundError: No matches found for {'kind': 'Gateway', 'api_version': 'v1beta1'} /opt/app-root/lib64/python3.8/site-packages/openshift/dynamic/discovery.py:186: ResourceNotFoundError ... kiali_client = openshift_client = browser = pick_namespace = ._pick_namespace at 0x7fa577c49af0> @pytest.mark.p_crud_resource @pytest.mark.p_crud_group3 def test_gateway_create(kiali_client, openshift_client, browser, pick_namespace): namespace = pick_namespace(BOOKINFO_2) gateway_name = 'gatewaytocreate' namespaces = [BOOKINFO_1, namespace] try: _delete_gateways(openshift_client, gateway_name, namespaces) tests = IstioConfigPageTest( kiali_client=kiali_client, openshift_client=openshift_client, browser=browser) > tests.test_gateway_create(gateway_name, 'www.google.com', 'http', '8080', namespaces=namespaces) kiali_qe/tests/test_istio_objects_crud.py:392: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ kiali_qe/tests/__init__.py:2290: in test_gateway_create self.assert_details(name, IstioConfigObjectType.GATEWAY.text, namespace) kiali_qe/tests/__init__.py:2175: in assert_details config_details_oc = self.openshift_client._istio_config(api_version='v1beta1', kind=object_type) kiali_qe/rest/openshift_api.py:127: in _istio_config return self._resource(kind=kind, api_version=api_version) kiali_qe/rest/openshift_api.py:76: in _resource return self._dyn_client.resources.get(kind=kind, api_version=api_version) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'api_version': 'v1beta1', 'kind': 'Gateway'}, results = [] def get(self, **kwargs): """ Same as search, but will throw an error if there are multiple or no results. If there are multiple results and only one is an exact match on api_version, that resource will be returned. """ results = self.search(**kwargs) # If there are multiple matches, prefer exact matches on api_version if len(results) > 1 and kwargs.get('api_version'): results = [ result for result in results if result.group_version == kwargs['api_version'] ] # If there are multiple matches, prefer non-List kinds if len(results) > 1 and not all([isinstance(x, ResourceList) for x in results]): results = [result for result in results if not isinstance(result, ResourceList)] # if multiple resources are found that share a GVK, prefer the one with the most supported verbs if len(results) > 1 and len(set((x.group_version, x.kind) for x in results)) == 1: if len(set(len(x.verbs) for x in results)) != 1: results = [max(results, key=lambda x: len(x.verbs))] if len(results) == 1: return results[0] elif not results: > raise ResourceNotFoundError('No matches found for {}'.format(kwargs)) E kubernetes.dynamic.exceptions.ResourceNotFoundError: No matches found for {'kind': 'Gateway', 'api_version': 'v1beta1'} /opt/app-root/lib64/python3.8/site-packages/openshift/dynamic/discovery.py:186: ResourceNotFoundError ... ... ... ... ... ... ... browser = @pytest.mark.p_atomic @pytest.mark.p_ro_group3 def test_filter(browser): # get page instance page = GraphPage(browser) # test available filters options_defined = [item.text for item in GraphPageDisplayFilter] for item in GraphPageBadgesFilter: options_defined.append(item.text) options_listed = page.filter.items logger.debug('Filter options[defined:{}, listed:{}]' .format(options_defined, options_listed)) assert is_equal(options_defined, options_listed), \ ('Filter Options mismatch: defined:{}, listed:{}' .format(options_defined, options_listed)) # enable disable each filter for filter_name in options_listed: > _filter_test(page, filter_name) kiali_qe/tests/test_graph_page.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ kiali_qe/tests/test_graph_page.py:153: in _filter_test assert page.filter.is_checked(filter_name) is False /opt/app-root/lib64/python3.8/site-packages/widgetastic/widget/base.py:80: in wrapped return method(self, *new_args, **new_kwargs) kiali_qe/components/__init__.py:1687: in is_checked return self._cb_action(filter_name, 'read', skipOpen=skipOpen) /opt/app-root/lib64/python3.8/site-packages/widgetastic/widget/base.py:80: in wrapped return method(self, *new_args, **new_kwargs) kiali_qe/components/__init__.py:1662: in _cb_action self.open() /opt/app-root/lib64/python3.8/site-packages/widgetastic/widget/base.py:80: in wrapped return method(self, *new_args, **new_kwargs) kiali_qe/components/__init__.py:1620: in open wait_displayed(self) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = timeout = '20s' def wait_displayed(obj, timeout='20s'): > wait_for( lambda: obj.is_displayed, timeout=timeout, delay=0.2, very_quiet=True, silent_failure=False) E wait_for.TimedOutError: Could not do 'lambda defined as `lambda: obj.is_displayed, timeout=timeout,`' at /home/jenkins/workspace/kiali/test-jobs/kiali-UI-tests/kiali-qe-python/kiali_qe/components/__init__.py:70 in time kiali_qe/components/__init__.py:69: TimedOutError ... ... ... kiali_qe/tests/test_login.py:7: ... kiali_qe/tests/test_login.py:23: ... ... kiali_qe/tests/test_distributed_tracing_page.py:7: ... ... ... ... ... ...