22# SPDX-License-Identifier: BSD 3-Clause License
33import queue
44import threading
5+ import warnings
56from contextlib import asynccontextmanager
67from unittest .mock import AsyncMock
78
1112import kr8s
1213import kr8s .asyncio
1314from kr8s ._async_utils import anext
15+ from kr8s ._constants import (
16+ KUBERNETES_MAXIMUM_SUPPORTED_VERSION ,
17+ KUBERNETES_MINIMUM_SUPPORTED_VERSION ,
18+ )
1419from kr8s ._exceptions import APITimeoutError
1520from kr8s .asyncio .objects import Pod , Service , Table
1621from kr8s .objects import Pod as SyncPod
@@ -520,6 +525,7 @@ def test_create_sync(example_pod_spec, example_service_spec):
520525 "v1.27.0" ,
521526 "1.27.0-eks-113cf36" ,
522527 "v1.27.0-eks-113cf36" ,
528+ f"{ KUBERNETES_MAXIMUM_SUPPORTED_VERSION .major } .{ KUBERNETES_MAXIMUM_SUPPORTED_VERSION .minor + 1 } " ,
523529 "asdkjhaskdjhasd" ,
524530 ],
525531)
@@ -532,6 +538,25 @@ async def test_bad_kubernetes_version(version):
532538 api .async_version = keep
533539
534540
541+ @pytest .mark .parametrize (
542+ "version" ,
543+ [
544+ str (KUBERNETES_MINIMUM_SUPPORTED_VERSION ),
545+ str (KUBERNETES_MAXIMUM_SUPPORTED_VERSION ),
546+ f"{ KUBERNETES_MAXIMUM_SUPPORTED_VERSION .major } .{ KUBERNETES_MAXIMUM_SUPPORTED_VERSION .minor } .15" ,
547+ f"{ KUBERNETES_MINIMUM_SUPPORTED_VERSION } -eks-113cf36" ,
548+ ],
549+ )
550+ async def test_good_kubernetes_version (version ):
551+ api = await kr8s .asyncio .api ()
552+ keep = api .async_version
553+ api .async_version = AsyncMock (return_value = {"gitVersion" : version })
554+ with warnings .catch_warnings (record = True ) as w :
555+ await api ._check_version ()
556+ assert w == []
557+ api .async_version = keep
558+
559+
535560async def test_crd_caching (example_crd_spec ):
536561 api = await kr8s .asyncio .api ()
537562
0 commit comments