# Copyright 2021 The KServe Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# coding: utf-8

"""
KServe

Python SDK for KServe  # noqa: E501

The version of the OpenAPI document: v0.1
Generated by: https://openapi-generator.tech
"""


from __future__ import absolute_import

import unittest
import datetime

import kserve
from kserve.models.v1beta1_inference_service_list import (
    V1beta1InferenceServiceList,
)  # noqa: E501
from kserve.rest import ApiException


class TestV1beta1InferenceServiceList(unittest.TestCase):
    """V1beta1InferenceServiceList unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional):
        """Test V1beta1InferenceServiceList
        include_option is a boolean, when False only required
        params are included, when True both required and
        optional params are included"""
        # model = kserve.models.v1beta1_inference_service_list.V1beta1InferenceServiceList()  # noqa: E501
        if include_optional:
            return V1beta1InferenceServiceList(
                api_version="0",
                items=[
                    kserve.models.v1beta1_inference_service.V1beta1InferenceService(
                        api_version="0",
                        kind="0",
                        metadata=None,
                        spec=kserve.models.v1beta1_inference_service_spec.V1beta1InferenceServiceSpec(
                            explainer=kserve.models.v1beta1_explainer_spec.V1beta1ExplainerSpec(
                                active_deadline_seconds=56,
                                affinity=None,
                                art=kserve.models.v1beta1_art_explainer_spec.V1beta1ARTExplainerSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    type="0",
                                    working_dir="0",
                                ),
                                automount_service_account_token=True,
                                batcher=kserve.models.v1beta1_batcher.V1beta1Batcher(
                                    max_batch_size=56,
                                    max_latency=56,
                                    timeout=56,
                                ),
                                canary_traffic_percent=56,
                                container_concurrency=56,
                                containers=[None],
                                dns_config=None,
                                dns_policy="0",
                                enable_service_links=True,
                                ephemeral_containers=[None],
                                host_aliases=[None],
                                host_ipc=True,
                                host_network=True,
                                host_pid=True,
                                hostname="0",
                                image_pull_secrets=[None],
                                init_containers=[None],
                                logger=kserve.models.v1beta1_logger_spec.V1beta1LoggerSpec(
                                    mode="0",
                                    url="0",
                                ),
                                max_replicas=56,
                                min_replicas=56,
                                node_name="0",
                                node_selector={"key": "0"},
                                overhead={"key": None},
                                preemption_policy="0",
                                priority=56,
                                priority_class_name="0",
                                readiness_gates=[None],
                                restart_policy="0",
                                runtime_class_name="0",
                                scheduler_name="0",
                                security_context=None,
                                service_account="0",
                                service_account_name="0",
                                share_process_namespace=True,
                                subdomain="0",
                                termination_grace_period_seconds=56,
                                timeout=56,
                                tolerations=[None],
                                topology_spread_constraints=[None],
                                volumes=[None],
                            ),
                            predictor=kserve.models.v1beta1_predictor_spec.V1beta1PredictorSpec(
                                active_deadline_seconds=56,
                                affinity=None,
                                automount_service_account_token=True,
                                canary_traffic_percent=56,
                                container_concurrency=56,
                                dns_config=None,
                                dns_policy="0",
                                enable_service_links=True,
                                host_ipc=True,
                                host_network=True,
                                host_pid=True,
                                hostname="0",
                                max_replicas=56,
                                min_replicas=56,
                                node_name="0",
                                onnx=kserve.models.v1beta1_onnx_runtime_spec.V1beta1ONNXRuntimeSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                preemption_policy="0",
                                priority=56,
                                priority_class_name="0",
                                pytorch=kserve.models.v1beta1_torch_serve_spec.V1beta1TorchServeSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                restart_policy="0",
                                runtime_class_name="0",
                                scheduler_name="0",
                                security_context=None,
                                service_account="0",
                                service_account_name="0",
                                share_process_namespace=True,
                                sklearn=kserve.models.v1beta1_sk_learn_spec.V1beta1SKLearnSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                subdomain="0",
                                tensorflow=kserve.models.v1beta1_tf_serving_spec.V1beta1TFServingSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                termination_grace_period_seconds=56,
                                timeout=56,
                                triton=kserve.models.v1beta1_triton_spec.V1beta1TritonSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                xgboost=kserve.models.v1beta1_xg_boost_spec.V1beta1XGBoostSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                            ),
                            transformer=kserve.models.v1beta1_transformer_spec.V1beta1TransformerSpec(
                                active_deadline_seconds=56,
                                affinity=None,
                                automount_service_account_token=True,
                                canary_traffic_percent=56,
                                container_concurrency=56,
                                dns_config=None,
                                dns_policy="0",
                                enable_service_links=True,
                                host_ipc=True,
                                host_network=True,
                                host_pid=True,
                                hostname="0",
                                max_replicas=56,
                                min_replicas=56,
                                node_name="0",
                                preemption_policy="0",
                                priority=56,
                                priority_class_name="0",
                                restart_policy="0",
                                runtime_class_name="0",
                                scheduler_name="0",
                                security_context=None,
                                service_account="0",
                                service_account_name="0",
                                share_process_namespace=True,
                                subdomain="0",
                                termination_grace_period_seconds=56,
                                timeout=56,
                            ),
                        ),
                        status=kserve.models.v1beta1_inference_service_status.V1beta1InferenceServiceStatus(
                            address=None,
                            components={
                                "key": kserve.models.v1beta1_component_status_spec.V1beta1ComponentStatusSpec(
                                    address=None,
                                    latest_created_revision="0",
                                    latest_ready_revision="0",
                                    latest_rolledout_revision="0",
                                    previous_rolledout_revision="0",
                                    traffic=list(),
                                    url=None,
                                )
                            },
                            conditions=[None],
                            observed_generation=56,
                            url=None,
                        ),
                    )
                ],
                kind="0",
                metadata=None,
            )
        else:
            return V1beta1InferenceServiceList(
                items=[
                    kserve.models.v1beta1_inference_service.V1beta1InferenceService(
                        api_version="0",
                        kind="0",
                        metadata=None,
                        spec=kserve.models.v1beta1_inference_service_spec.V1beta1InferenceServiceSpec(
                            explainer=kserve.models.v1beta1_explainer_spec.V1beta1ExplainerSpec(
                                active_deadline_seconds=56,
                                affinity=None,
                                art=kserve.models.v1beta1_art_explainer_spec.V1beta1ARTExplainerSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    type="0",
                                    working_dir="0",
                                ),
                                automount_service_account_token=True,
                                batcher=kserve.models.v1beta1_batcher.V1beta1Batcher(
                                    max_batch_size=56,
                                    max_latency=56,
                                    timeout=56,
                                ),
                                canary_traffic_percent=56,
                                container_concurrency=56,
                                containers=[None],
                                dns_config=None,
                                dns_policy="0",
                                enable_service_links=True,
                                ephemeral_containers=[None],
                                host_aliases=[None],
                                host_ipc=True,
                                host_network=True,
                                host_pid=True,
                                hostname="0",
                                image_pull_secrets=[None],
                                init_containers=[None],
                                logger=kserve.models.v1beta1_logger_spec.V1beta1LoggerSpec(
                                    mode="0",
                                    url="0",
                                ),
                                max_replicas=56,
                                min_replicas=56,
                                node_name="0",
                                node_selector={"key": "0"},
                                overhead={"key": None},
                                preemption_policy="0",
                                priority=56,
                                priority_class_name="0",
                                readiness_gates=[None],
                                restart_policy="0",
                                runtime_class_name="0",
                                scheduler_name="0",
                                security_context=None,
                                service_account="0",
                                service_account_name="0",
                                share_process_namespace=True,
                                subdomain="0",
                                termination_grace_period_seconds=56,
                                timeout=56,
                                tolerations=[None],
                                topology_spread_constraints=[None],
                                volumes=[None],
                            ),
                            predictor=kserve.models.v1beta1_predictor_spec.V1beta1PredictorSpec(
                                active_deadline_seconds=56,
                                affinity=None,
                                automount_service_account_token=True,
                                canary_traffic_percent=56,
                                container_concurrency=56,
                                dns_config=None,
                                dns_policy="0",
                                enable_service_links=True,
                                host_ipc=True,
                                host_network=True,
                                host_pid=True,
                                hostname="0",
                                max_replicas=56,
                                min_replicas=56,
                                node_name="0",
                                onnx=kserve.models.v1beta1_onnx_runtime_spec.V1beta1ONNXRuntimeSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                preemption_policy="0",
                                priority=56,
                                priority_class_name="0",
                                pytorch=kserve.models.v1beta1_torch_serve_spec.V1beta1TorchServeSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                restart_policy="0",
                                runtime_class_name="0",
                                scheduler_name="0",
                                security_context=None,
                                service_account="0",
                                service_account_name="0",
                                share_process_namespace=True,
                                sklearn=kserve.models.v1beta1_sk_learn_spec.V1beta1SKLearnSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                subdomain="0",
                                tensorflow=kserve.models.v1beta1_tf_serving_spec.V1beta1TFServingSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                termination_grace_period_seconds=56,
                                timeout=56,
                                triton=kserve.models.v1beta1_triton_spec.V1beta1TritonSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                                xgboost=kserve.models.v1beta1_xg_boost_spec.V1beta1XGBoostSpec(
                                    image="0",
                                    image_pull_policy="0",
                                    lifecycle=None,
                                    liveness_probe=None,
                                    name="0",
                                    readiness_probe=None,
                                    resources=None,
                                    runtime_version="0",
                                    security_context=None,
                                    startup_probe=None,
                                    stdin=True,
                                    stdin_once=True,
                                    storage_uri="0",
                                    termination_message_path="0",
                                    termination_message_policy="0",
                                    tty=True,
                                    working_dir="0",
                                ),
                            ),
                            transformer=kserve.models.v1beta1_transformer_spec.V1beta1TransformerSpec(
                                active_deadline_seconds=56,
                                affinity=None,
                                automount_service_account_token=True,
                                canary_traffic_percent=56,
                                container_concurrency=56,
                                dns_config=None,
                                dns_policy="0",
                                enable_service_links=True,
                                host_ipc=True,
                                host_network=True,
                                host_pid=True,
                                hostname="0",
                                max_replicas=56,
                                min_replicas=56,
                                node_name="0",
                                preemption_policy="0",
                                priority=56,
                                priority_class_name="0",
                                restart_policy="0",
                                runtime_class_name="0",
                                scheduler_name="0",
                                security_context=None,
                                service_account="0",
                                service_account_name="0",
                                share_process_namespace=True,
                                subdomain="0",
                                termination_grace_period_seconds=56,
                                timeout=56,
                            ),
                        ),
                        status=kserve.models.v1beta1_inference_service_status.V1beta1InferenceServiceStatus(
                            address=None,
                            components={
                                "key": kserve.models.v1beta1_component_status_spec.V1beta1ComponentStatusSpec(
                                    address=None,
                                    latest_created_revision="0",
                                    latest_ready_revision="0",
                                    latest_rolledout_revision="0",
                                    previous_rolledout_revision="0",
                                    traffic=list(),
                                    url=None,
                                )
                            },
                            conditions=[None],
                            observed_generation=56,
                            url=None,
                        ),
                    )
                ],
            )

    def testV1beta1InferenceServiceList(self):
        """Test V1beta1InferenceServiceList"""
        inst_req_only = self.make_instance(include_optional=False)
        inst_req_and_optional = self.make_instance(include_optional=True)


if __name__ == "__main__":
    unittest.main()
