Skip to content

Commit 99c270f

Browse files
fix(tests): fix: tests which call HTTP endpoints directly with the example parameters
1 parent 984c77b commit 99c270f

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

@@ -721,44 +718,21 @@ def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str
721718

722719
@mock.patch("kernel._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
723720
@pytest.mark.respx(base_url=base_url)
724-
def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
721+
def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, client: Kernel) -> None:
725722
respx_mock.post("/browsers").mock(side_effect=httpx.TimeoutException("Test timeout error"))
726723

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

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

743729
@mock.patch("kernel._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
744730
@pytest.mark.respx(base_url=base_url)
745-
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
731+
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: Kernel) -> None:
746732
respx_mock.post("/browsers").mock(return_value=httpx.Response(500))
747733

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

764738
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
@@ -1572,44 +1546,25 @@ async def test_parse_retry_after_header(self, remaining_retries: int, retry_afte
15721546

15731547
@mock.patch("kernel._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
15741548
@pytest.mark.respx(base_url=base_url)
1575-
async def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
1549+
async def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, async_client: AsyncKernel) -> None:
15761550
respx_mock.post("/browsers").mock(side_effect=httpx.TimeoutException("Test timeout error"))
15771551

15781552
with pytest.raises(APITimeoutError):
1579-
await self.client.post(
1580-
"/browsers",
1581-
body=cast(
1582-
object,
1583-
maybe_transform(
1584-
dict(invocation_id="REPLACE_ME", persistence={"id": "browser-for-user-1234"}),
1585-
BrowserCreateParams,
1586-
),
1587-
),
1588-
cast_to=httpx.Response,
1589-
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
1590-
)
1553+
await async_client.browsers.with_streaming_response.create(
1554+
invocation_id="rr33xuugxj9h0bkf1rdt2bet"
1555+
).__aenter__()
15911556

15921557
assert _get_open_connections(self.client) == 0
15931558

15941559
@mock.patch("kernel._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
15951560
@pytest.mark.respx(base_url=base_url)
1596-
async def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
1561+
async def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, async_client: AsyncKernel) -> None:
15971562
respx_mock.post("/browsers").mock(return_value=httpx.Response(500))
15981563

15991564
with pytest.raises(APIStatusError):
1600-
await self.client.post(
1601-
"/browsers",
1602-
body=cast(
1603-
object,
1604-
maybe_transform(
1605-
dict(invocation_id="REPLACE_ME", persistence={"id": "browser-for-user-1234"}),
1606-
BrowserCreateParams,
1607-
),
1608-
),
1609-
cast_to=httpx.Response,
1610-
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
1611-
)
1612-
1565+
await async_client.browsers.with_streaming_response.create(
1566+
invocation_id="rr33xuugxj9h0bkf1rdt2bet"
1567+
).__aenter__()
16131568
assert _get_open_connections(self.client) == 0
16141569

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

0 commit comments

Comments
 (0)