{"created": 1783365390.282366, "duration": 2.6048758029937744, "exitcode": 2, "root": "/workspace/source/test/e2e", "environment": {}, "summary": {"error": 5, "skipped": 2, "total": 7, "collected": 61}, "collectors": [{"nodeid": "explainer/test_art_explainer.py", "outcome": "skipped", "result": [], "longrepr": "('/workspace/source/test/e2e/explainer/test_art_explainer.py', 38, 'Skipped: ODH does not support art explainer at the moment')"}, {"nodeid": "predictor/test_grpc.py", "outcome": "skipped", "result": [], "longrepr": "('/workspace/source/test/e2e/predictor/test_grpc.py', 35, 'Skipped: Not testable in ODH at the moment')"}, {"nodeid": "predictor/test_torchserve.py", "outcome": "skipped", "result": [], "longrepr": "('/workspace/source/test/e2e/predictor/test_torchserve.py', 34, 'Skipped: ODH does not support torchserve at the moment')"}], "tests": [{"nodeid": "batcher/test_batcher.py::test_batcher", "lineno": 30, "outcome": "error", "keywords": ["test_batcher", "asyncio", "predictor", "pytestmark", "test_batcher.py", "batcher/__init__.py", "e2e"], "setup": {"duration": 0.0037907039950368926, "outcome": "failed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\nfile /workspace/source/test/e2e/batcher/test_batcher.py, line 31\n  @pytest.mark.predictor\n  @pytest.mark.asyncio(scope=\"session\")\n  async def test_batcher(rest_v1_client, network_layer):\n      service_name = \"isvc-sklearn-batcher\"\n\n      predictor = V1beta1PredictorSpec(\n          batcher=V1beta1Batcher(\n              max_batch_size=32,\n              max_latency=5000,\n          ),\n          min_replicas=1,\n          sklearn=V1beta1SKLearnSpec(\n              storage_uri=\"gs://kfserving-examples/models/sklearn/1.0/model\",\n              resources=V1ResourceRequirements(\n                  requests={\"cpu\": \"50m\", \"memory\": \"128Mi\"},\n                  limits={\"cpu\": \"100m\", \"memory\": \"256Mi\"},\n              ),\n          ),\n      )\n\n      isvc = V1beta1InferenceService(\n          api_version=constants.KSERVE_V1BETA1,\n          kind=constants.KSERVE_KIND_INFERENCESERVICE,\n          metadata=client.V1ObjectMeta(\n              name=service_name,\n              namespace=KSERVE_TEST_NAMESPACE,\n              labels={\n                  constants.KSERVE_LABEL_NETWORKING_VISIBILITY: constants.KSERVE_LABEL_NETWORKING_VISIBILITY_EXPOSED,\n              },\n          ),\n          spec=V1beta1InferenceServiceSpec(predictor=predictor),\n      )\n      kserve_client.create(isvc)\n      try:\n          kserve_client.wait_isvc_ready(service_name, namespace=KSERVE_TEST_NAMESPACE)\n      except RuntimeError as e:\n          print(\n              kserve_client.api_instance.get_namespaced_custom_object(\n                  \"serving.knative.dev\",\n                  \"v1\",\n                  KSERVE_TEST_NAMESPACE,\n                  \"services\",\n                  service_name + \"-predictor\",\n              )\n          )\n          pods = kserve_client.core_api.list_namespaced_pod(\n              KSERVE_TEST_NAMESPACE,\n              label_selector=\"serving.kserve.io/inferenceservice={}\".format(service_name),\n          )\n          for pod in pods.items:\n              print(pod)\n          raise e\n      results = await predict_isvc(\n          rest_v1_client,\n          service_name,\n          \"./data/iris_batch_input.json\",\n          is_batch=True,\n          network_layer=network_layer,\n      )\n      assert all(x == results[0] for x in results)\n      kserve_client.delete(service_name, KSERVE_TEST_NAMESPACE)\nfile /workspace/source/test/e2e/common/gateway_proxy_istio.py, line 119\n  @pytest.fixture(autouse=True)\n  def ensure_gateway_proxy_memory(test_case):\nE       fixture 'test_case' not found\n>       available fixtures: _session_event_loop, anyio_backend, anyio_backend_name, anyio_backend_options, assert_all_responses_were_requested, batcher/__init__.py::<event_loop>, batcher/test_batcher.py::<event_loop>, cache, capfd, capfdbinary, caplog, capsys, capsysbinary, configure_logger, cov, doctest_namespace, ensure_gateway_proxy_memory, event_loop, event_loop_policy, free_tcp_port, free_tcp_port_factory, free_udp_port, free_udp_port_factory, httpx_mock, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, network_layer, no_cover, non_mocked_hosts, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, rest_v1_client, rest_v2_client, testrun_uid, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory, unused_tcp_port, unused_tcp_port_factory, unused_udp_port, unused_udp_port_factory, worker_id\n>       use 'pytest --fixtures [testpath]' for help on them.\n\n/workspace/source/test/e2e/common/gateway_proxy_istio.py:119"}, "teardown": {"duration": 0.00015933400572976097, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "batcher/test_batcher_custom_port.py::test_batcher_custom_port", "lineno": 32, "outcome": "error", "keywords": ["test_batcher_custom_port", "asyncio", "predictor", "pytestmark", "test_batcher_custom_port.py", "batcher/__init__.py", "e2e"], "setup": {"duration": 0.00024059600400505587, "outcome": "failed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\nfile /workspace/source/test/e2e/batcher/test_batcher_custom_port.py, line 33\n  @pytest.mark.predictor\n  @pytest.mark.asyncio(scope=\"session\")\n  async def test_batcher_custom_port(rest_v1_client, network_layer):\n      service_name = \"isvc-sklearn-batcher-custom\"\n\n      predictor = V1beta1PredictorSpec(\n          batcher=V1beta1Batcher(\n              max_batch_size=32,\n              max_latency=5000,\n          ),\n          min_replicas=1,\n          sklearn=V1beta1SKLearnSpec(\n              args=[\"--http_port=5000\"],\n              storage_uri=\"gs://kfserving-examples/models/sklearn/1.0/model\",\n              resources=V1ResourceRequirements(\n                  requests={\"cpu\": \"50m\", \"memory\": \"128Mi\"},\n                  limits={\"cpu\": \"100m\", \"memory\": \"256Mi\"},\n              ),\n              ports=[V1ContainerPort(container_port=5000, protocol=\"TCP\")],\n          ),\n      )\n\n      isvc = V1beta1InferenceService(\n          api_version=constants.KSERVE_V1BETA1,\n          kind=constants.KSERVE_KIND_INFERENCESERVICE,\n          metadata=client.V1ObjectMeta(\n              name=service_name,\n              namespace=KSERVE_TEST_NAMESPACE,\n              labels={\n                  constants.KSERVE_LABEL_NETWORKING_VISIBILITY: constants.KSERVE_LABEL_NETWORKING_VISIBILITY_EXPOSED,\n              },\n          ),\n          spec=V1beta1InferenceServiceSpec(predictor=predictor),\n      )\n      kserve_client.create(isvc)\n      try:\n          kserve_client.wait_isvc_ready(service_name, namespace=KSERVE_TEST_NAMESPACE)\n      except RuntimeError as e:\n          print(\n              kserve_client.api_instance.get_namespaced_custom_object(\n                  \"serving.knative.dev\",\n                  \"v1\",\n                  KSERVE_TEST_NAMESPACE,\n                  \"services\",\n                  service_name + \"-predictor\",\n              )\n          )\n          pods = kserve_client.core_api.list_namespaced_pod(\n              KSERVE_TEST_NAMESPACE,\n              label_selector=\"serving.kserve.io/inferenceservice={}\".format(service_name),\n          )\n          for pod in pods.items:\n              print(pod)\n          raise e\n      results = await predict_isvc(\n          rest_v1_client,\n          service_name,\n          \"./data/iris_batch_input.json\",\n          is_batch=True,\n          network_layer=network_layer,\n      )\n      assert all(x == results[0] for x in results)\n      kserve_client.delete(service_name, KSERVE_TEST_NAMESPACE)\nfile /workspace/source/test/e2e/common/gateway_proxy_istio.py, line 119\n  @pytest.fixture(autouse=True)\n  def ensure_gateway_proxy_memory(test_case):\nE       fixture 'test_case' not found\n>       available fixtures: __init__.py::<event_loop>, _session_event_loop, anyio_backend, anyio_backend_name, anyio_backend_options, assert_all_responses_were_requested, batcher/test_batcher_custom_port.py::<event_loop>, cache, capfd, capfdbinary, caplog, capsys, capsysbinary, configure_logger, cov, doctest_namespace, ensure_gateway_proxy_memory, event_loop, event_loop_policy, free_tcp_port, free_tcp_port_factory, free_udp_port, free_udp_port_factory, httpx_mock, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, network_layer, no_cover, non_mocked_hosts, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, rest_v1_client, rest_v2_client, testrun_uid, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory, unused_tcp_port, unused_tcp_port_factory, unused_udp_port, unused_udp_port_factory, worker_id\n>       use 'pytest --fixtures [testpath]' for help on them.\n\n/workspace/source/test/e2e/common/gateway_proxy_istio.py:119"}, "teardown": {"duration": 0.0001389639946864918, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "custom/test_custom_model_grpc.py::test_custom_model_grpc", "lineno": 41, "outcome": "skipped", "keywords": ["test_custom_model_grpc", "asyncio", "predictor", "grpc", "skip", "pytestmark", "test_custom_model_grpc.py", "custom/__init__.py", "e2e"], "setup": {"duration": 0.0001264829988940619, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/custom/test_custom_model_grpc.py', 42, 'Skipped: Not testable in ODH at the moment')"}, "teardown": {"duration": 0.00010727200424298644, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "custom/test_ray.py::test_custom_model_http_ray", "lineno": 29, "outcome": "skipped", "keywords": ["test_custom_model_http_ray", "asyncio", "predictor", "skip", "pytestmark", "test_ray.py", "custom/__init__.py", "e2e"], "setup": {"duration": 0.00011504400026751682, "outcome": "skipped", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\n('/workspace/source/test/e2e/custom/test_ray.py', 30, 'Skipped: Not testable in ODH at the moment')"}, "teardown": {"duration": 0.00013362400204641744, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "logger/test_logger.py::test_kserve_logger", "lineno": 33, "outcome": "error", "keywords": ["test_kserve_logger", "asyncio", "path_based_routing", "predictor", "pytestmark", "test_logger.py", "logger/__init__.py", "e2e"], "setup": {"duration": 0.0003398589979042299, "outcome": "failed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\nfile /workspace/source/test/e2e/logger/test_logger.py, line 34\n  @pytest.mark.predictor\n  @pytest.mark.path_based_routing\n  @pytest.mark.asyncio(scope=\"session\")\n  async def test_kserve_logger(rest_v1_client, network_layer):\n      msg_dumper = \"message-dumper\"\n      predictor = V1beta1PredictorSpec(\n          min_replicas=1,\n          containers=[\n              V1Container(\n                  name=\"kserve-container\",\n                  image=\"gcr.io/knative-releases/knative.dev/eventing-contrib/cmd/event_display\",\n                  resources=V1ResourceRequirements(\n                      requests={\"cpu\": \"10m\", \"memory\": \"128Mi\"},\n                      limits={\"cpu\": \"100m\", \"memory\": \"256Mi\"},\n                  ),\n              )\n          ],\n      )\n\n      isvc = V1beta1InferenceService(\n          api_version=constants.KSERVE_V1BETA1,\n          kind=constants.KSERVE_KIND_INFERENCESERVICE,\n          metadata=client.V1ObjectMeta(\n              name=msg_dumper,\n              namespace=KSERVE_TEST_NAMESPACE,\n              labels={\n                  constants.KSERVE_LABEL_NETWORKING_VISIBILITY: constants.KSERVE_LABEL_NETWORKING_VISIBILITY_EXPOSED,\n              },\n          ),\n          spec=V1beta1InferenceServiceSpec(predictor=predictor),\n      )\n\n      kserve_client.create(isvc)\n      kserve_client.wait_isvc_ready(msg_dumper, namespace=KSERVE_TEST_NAMESPACE)\n\n      service_name = \"isvc-logger\"\n      predictor = V1beta1PredictorSpec(\n          min_replicas=1,\n          logger=V1beta1LoggerSpec(\n              mode=\"all\",\n              url=f\"http://{msg_dumper}-predictor.\"\n              + KSERVE_TEST_NAMESPACE\n              + \".svc.cluster.local\",\n          ),\n          sklearn=V1beta1SKLearnSpec(\n              storage_uri=\"gs://kfserving-examples/models/sklearn/1.0/model\",\n              resources=V1ResourceRequirements(\n                  requests={\"cpu\": \"10m\", \"memory\": \"128Mi\"},\n                  limits={\"cpu\": \"100m\", \"memory\": \"256Mi\"},\n              ),\n          ),\n      )\n\n      isvc = V1beta1InferenceService(\n          api_version=constants.KSERVE_V1BETA1,\n          kind=constants.KSERVE_KIND_INFERENCESERVICE,\n          metadata=client.V1ObjectMeta(\n              name=service_name,\n              namespace=KSERVE_TEST_NAMESPACE,\n              labels={\n                  constants.KSERVE_LABEL_NETWORKING_VISIBILITY: constants.KSERVE_LABEL_NETWORKING_VISIBILITY_EXPOSED,\n              },\n          ),\n          spec=V1beta1InferenceServiceSpec(predictor=predictor),\n      )\n\n      kserve_client.create(isvc)\n      try:\n          kserve_client.wait_isvc_ready(service_name, namespace=KSERVE_TEST_NAMESPACE)\n      except RuntimeError:\n          pods = kserve_client.core_api.list_namespaced_pod(\n              KSERVE_TEST_NAMESPACE,\n              label_selector=\"serving.kserve.io/inferenceservice={}\".format(service_name),\n          )\n          for pod in pods.items:\n              print(pod)\n\n      res = await predict_isvc(\n          rest_v1_client,\n          service_name,\n          \"./data/iris_input.json\",\n          network_layer=network_layer,\n      )\n      assert res[\"predictions\"] == [1, 1]\n      pods = kserve_client.core_api.list_namespaced_pod(\n          KSERVE_TEST_NAMESPACE,\n          label_selector=\"serving.kserve.io/inferenceservice={}\".format(msg_dumper),\n      )\n      await asyncio.sleep(5)\n      log = \"\"\n      for pod in pods.items:\n          log += kserve_client.core_api.read_namespaced_pod_log(\n              name=pod.metadata.name,\n              namespace=pod.metadata.namespace,\n              container=\"kserve-container\",\n          )\n          print(log)\n      assert \"org.kubeflow.serving.inference.request\" in log\n      assert \"org.kubeflow.serving.inference.response\" in log\n\n      kserve_client.delete(service_name, KSERVE_TEST_NAMESPACE)\n      kserve_client.delete(msg_dumper, KSERVE_TEST_NAMESPACE)\nfile /workspace/source/test/e2e/common/gateway_proxy_istio.py, line 119\n  @pytest.fixture(autouse=True)\n  def ensure_gateway_proxy_memory(test_case):\nE       fixture 'test_case' not found\n>       available fixtures: _session_event_loop, anyio_backend, anyio_backend_name, anyio_backend_options, assert_all_responses_were_requested, cache, capfd, capfdbinary, caplog, capsys, capsysbinary, configure_logger, cov, doctest_namespace, ensure_gateway_proxy_memory, event_loop, event_loop_policy, free_tcp_port, free_tcp_port_factory, free_udp_port, free_udp_port_factory, httpx_mock, include_metadata_in_junit_xml, json_metadata, logger/__init__.py::<event_loop>, logger/test_logger.py::<event_loop>, metadata, monkeypatch, network_layer, no_cover, non_mocked_hosts, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, rest_v1_client, rest_v2_client, testrun_uid, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory, unused_tcp_port, unused_tcp_port_factory, unused_udp_port, unused_udp_port_factory, worker_id\n>       use 'pytest --fixtures [testpath]' for help on them.\n\n/workspace/source/test/e2e/common/gateway_proxy_istio.py:119"}, "teardown": {"duration": 0.00013666399900102988, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autogluon.py::test_autogluon_runtime_kserve_v1", "lineno": 57, "outcome": "error", "keywords": ["test_autogluon_runtime_kserve_v1", "asyncio", "predictor", "pytestmark", "test_autogluon.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0003103679991909303, "outcome": "failed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\nfile /workspace/source/test/e2e/predictor/test_autogluon.py, line 58\n  @pytest.mark.predictor\n  @pytest.mark.asyncio(scope=\"session\")\n  async def test_autogluon_runtime_kserve_v1(rest_v1_client):\n      service_name = \"isvc-autogluon-v1\"\n      predictor = _create_predictor(service_name)\n      response = await deploy_and_predict(\n          service_name,\n          predictor,\n          rest_v1_client,\n          \"./data/autogluon_titanic_input.json\",\n      )\n      assert \"predictions\" in response\n      assert len(response[\"predictions\"]) > 0\nfile /workspace/source/test/e2e/common/gateway_proxy_istio.py, line 119\n  @pytest.fixture(autouse=True)\n  def ensure_gateway_proxy_memory(test_case):\nE       fixture 'test_case' not found\n>       available fixtures: _cleanup_orphaned_predictor_isvcs, _session_event_loop, anyio_backend, anyio_backend_name, anyio_backend_options, assert_all_responses_were_requested, cache, capfd, capfdbinary, caplog, capsys, capsysbinary, configure_logger, cov, doctest_namespace, ensure_gateway_proxy_memory, event_loop, event_loop_policy, free_tcp_port, free_tcp_port_factory, free_udp_port, free_udp_port_factory, httpx_mock, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, network_layer, no_cover, non_mocked_hosts, predictor/__init__.py::<event_loop>, predictor/test_autogluon.py::<event_loop>, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, rest_v1_client, rest_v2_client, testrun_uid, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory, unused_tcp_port, unused_tcp_port_factory, unused_udp_port, unused_udp_port_factory, worker_id\n>       use 'pytest --fixtures [testpath]' for help on them.\n\n/workspace/source/test/e2e/common/gateway_proxy_istio.py:119"}, "teardown": {"duration": 0.00015066400374053046, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}, {"nodeid": "predictor/test_autogluon.py::test_autogluon_runtime_kserve_v2", "lineno": 72, "outcome": "error", "keywords": ["test_autogluon_runtime_kserve_v2", "asyncio", "predictor", "pytestmark", "test_autogluon.py", "predictor/__init__.py", "e2e"], "setup": {"duration": 0.0015287619971786626, "outcome": "failed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python\nfile /workspace/source/test/e2e/predictor/test_autogluon.py, line 73\n  @pytest.mark.predictor\n  @pytest.mark.asyncio(scope=\"session\")\n  async def test_autogluon_runtime_kserve_v2(rest_v2_client):\n      service_name = \"isvc-autogluon-v2\"\n      predictor = _create_predictor(service_name, protocol_version=\"v2\")\n      response = await deploy_and_predict(\n          service_name,\n          predictor,\n          rest_v2_client,\n          \"./data/autogluon_titanic_input_v2.json\",\n      )\n      assert len(response.outputs) > 0\n      assert len(response.outputs[0].data) > 0\nfile /workspace/source/test/e2e/common/gateway_proxy_istio.py, line 119\n  @pytest.fixture(autouse=True)\n  def ensure_gateway_proxy_memory(test_case):\nE       fixture 'test_case' not found\n>       available fixtures: _cleanup_orphaned_predictor_isvcs, _session_event_loop, anyio_backend, anyio_backend_name, anyio_backend_options, assert_all_responses_were_requested, cache, capfd, capfdbinary, caplog, capsys, capsysbinary, configure_logger, cov, doctest_namespace, ensure_gateway_proxy_memory, event_loop, event_loop_policy, free_tcp_port, free_tcp_port_factory, free_udp_port, free_udp_port_factory, httpx_mock, include_metadata_in_junit_xml, json_metadata, metadata, monkeypatch, network_layer, no_cover, non_mocked_hosts, predictor/__init__.py::<event_loop>, predictor/test_autogluon.py::<event_loop>, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, rest_v1_client, rest_v2_client, testrun_uid, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory, unused_tcp_port, unused_tcp_port_factory, unused_udp_port, unused_udp_port_factory, worker_id\n>       use 'pytest --fixtures [testpath]' for help on them.\n\n/workspace/source/test/e2e/common/gateway_proxy_istio.py:119"}, "teardown": {"duration": 0.00016211399633903056, "outcome": "passed", "longrepr": "[gw0] linux -- Python 3.11.13 /workspace/source/python/kserve/.venv/bin/python"}}]}