Coverage for fake_kubernetes_client/kubernetes_client.py: 100%
12 statements
« prev ^ index » next coverage.py v7.10.1, created at 2025-07-29 12:31 +0300
« prev ^ index » next coverage.py v7.10.1, created at 2025-07-29 12:31 +0300
1"""FakeKubernetesClient implementation for fake Kubernetes client"""
3from typing import TYPE_CHECKING, Any, Union
5from fake_kubernetes_client.configuration import FakeConfiguration
6from fake_kubernetes_client.resource_field import FakeResourceField
8if TYPE_CHECKING:
9 from fake_kubernetes_client.dynamic_client import FakeDynamicClient
12class FakeKubernetesClient:
13 """Fake implementation of kubernetes.client.ApiClient"""
15 def __init__(
16 self,
17 configuration: Union[FakeConfiguration, None] = None,
18 dynamic_client: Union["FakeDynamicClient", None] = None,
19 ) -> None:
20 self.configuration = configuration or FakeConfiguration()
21 self.dynamic_client = dynamic_client
23 def call_api(
24 self,
25 resource_path: str,
26 method: str,
27 path_params: Union[dict[str, Any], None] = None,
28 query_params: Union[list[tuple[str, Any]], None] = None,
29 header_params: Union[dict[str, Any], None] = None,
30 body: Any = None,
31 post_params: Union[list[tuple[str, Any]], None] = None,
32 files: Union[dict[str, Any], None] = None,
33 response_type: Union[str, None] = None,
34 auth_settings: Union[list[str], None] = None,
35 async_req: Union[bool, None] = None,
36 _return_http_data_only: Union[bool, None] = None,
37 collection_formats: Union[dict[str, Any], None] = None,
38 _preload_content: Union[bool, None] = None,
39 _request_timeout: Union[int, None] = None,
40 ) -> Any:
41 """
42 Fake implementation of API calls.
44 Currently only handles GET requests to "/api/v1" for API resource listing.
45 All other requests return None.
47 This is a minimal implementation sufficient for basic testing scenarios.
48 """
49 if self.dynamic_client and method == "GET" and "/api/v1" in resource_path:
50 # Handle API resource listing
51 if resource_path == "/api/v1":
52 return FakeResourceField(data={"kind": "APIResourceList", "groupVersion": "v1", "resources": []})
53 return None