Skip to content

Commit 53d6547

Browse files
fix(tests): fix: tests which call HTTP endpoints directly with the example parameters
1 parent 099868c commit 53d6547

File tree

1 file changed

+12
-57
lines changed

1 file changed

+12
-57
lines changed

tests/test_client.py

Lines changed: 12 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@
2323

2424
from kernel import Kernel, AsyncKernel, APIResponseValidationError
2525
from kernel._types import Omit
26-
from kernel._utils import maybe_transform
2726
from kernel._models import BaseModel, FinalRequestOptions
28-
from kernel._constants import RAW_RESPONSE_HEADER
2927
from kernel._exceptions import KernelError, APIStatusError, APITimeoutError, APIResponseValidationError
3028
from kernel._base_client import (
3129
DEFAULT_TIMEOUT,
@@ -35,7 +33,6 @@
3533
DefaultAsyncHttpxClient,
3634
make_request_options,
3735
)
38-
from kernel.types.browser_create_params import BrowserCreateParams
3936

4037
from .utils import update_env
4138

@@ -722,45 +719,22 @@ def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str
722719
@pytest.mark.skip() # SDK-2615
723720
@mock.patch("kernel._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
724721
@pytest.mark.respx(base_url=base_url)
725-
def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
722+
def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, client: Kernel) -> None:
726723
respx_mock.post("/browsers").mock(side_effect=httpx.TimeoutException("Test timeout error"))
727724

728725
with pytest.raises(APITimeoutError):
729-
self.client.post(
730-
"/browsers",
731-
body=cast(
732-
object,
733-
maybe_transform(
734-
dict(invocation_id="REPLACE_ME", persistence={"id": "browser-for-user-1234"}),
735-
BrowserCreateParams,
736-
),
737-
),
738-
cast_to=httpx.Response,
739-
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
740-
)
726+
client.browsers.with_streaming_response.create(invocation_id="rr33xuugxj9h0bkf1rdt2bet").__enter__()
741727

742728
assert _get_open_connections(self.client) == 0
743729

744730
@pytest.mark.skip() # SDK-2615
745731
@mock.patch("kernel._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
746732
@pytest.mark.respx(base_url=base_url)
747-
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
733+
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: Kernel) -> None:
748734
respx_mock.post("/browsers").mock(return_value=httpx.Response(500))
749735

750736
with pytest.raises(APIStatusError):
751-
self.client.post(
752-
"/browsers",
753-
body=cast(
754-
object,
755-
maybe_transform(
756-
dict(invocation_id="REPLACE_ME", persistence={"id": "browser-for-user-1234"}),
757-
BrowserCreateParams,
758-
),
759-
),
760-
cast_to=httpx.Response,
761-
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
762-
)
763-
737+
client.browsers.with_streaming_response.create(invocation_id="rr33xuugxj9h0bkf1rdt2bet").__enter__()
764738
assert _get_open_connections(self.client) == 0
765739

766740
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
@@ -1575,45 +1549,26 @@ async def test_parse_retry_after_header(self, remaining_retries: int, retry_afte
15751549
@pytest.mark.skip() # SDK-2615
15761550
@mock.patch("kernel._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
15771551
@pytest.mark.respx(base_url=base_url)
1578-
async def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
1552+
async def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, async_client: AsyncKernel) -> None:
15791553
respx_mock.post("/browsers").mock(side_effect=httpx.TimeoutException("Test timeout error"))
15801554

15811555
with pytest.raises(APITimeoutError):
1582-
await self.client.post(
1583-
"/browsers",
1584-
body=cast(
1585-
object,
1586-
maybe_transform(
1587-
dict(invocation_id="REPLACE_ME", persistence={"id": "browser-for-user-1234"}),
1588-
BrowserCreateParams,
1589-
),
1590-
),
1591-
cast_to=httpx.Response,
1592-
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
1593-
)
1556+
await async_client.browsers.with_streaming_response.create(
1557+
invocation_id="rr33xuugxj9h0bkf1rdt2bet"
1558+
).__aenter__()
15941559

15951560
assert _get_open_connections(self.client) == 0
15961561

15971562
@pytest.mark.skip() # SDK-2615
15981563
@mock.patch("kernel._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
15991564
@pytest.mark.respx(base_url=base_url)
1600-
async def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
1565+
async def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, async_client: AsyncKernel) -> None:
16011566
respx_mock.post("/browsers").mock(return_value=httpx.Response(500))
16021567

16031568
with pytest.raises(APIStatusError):
1604-
await self.client.post(
1605-
"/browsers",
1606-
body=cast(
1607-
object,
1608-
maybe_transform(
1609-
dict(invocation_id="REPLACE_ME", persistence={"id": "browser-for-user-1234"}),
1610-
BrowserCreateParams,
1611-
),
1612-
),
1613-
cast_to=httpx.Response,
1614-
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
1615-
)
1616-
1569+
await async_client.browsers.with_streaming_response.create(
1570+
invocation_id="rr33xuugxj9h0bkf1rdt2bet"
1571+
).__aenter__()
16171572
assert _get_open_connections(self.client) == 0
16181573

16191574
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])

0 commit comments

Comments
 (0)