mirror of
https://github.com/anomalyco/opencode-sdk-python.git
synced 2026-04-30 13:39:57 +00:00
feat(api): api update
This commit is contained in:
parent
6927a1bfda
commit
4db7199701
3 changed files with 31 additions and 57 deletions
|
|
@ -686,20 +686,20 @@ class TestOpencode:
|
|||
@mock.patch("opencode_ai._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
|
||||
@pytest.mark.respx(base_url=base_url)
|
||||
def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, client: Opencode) -> None:
|
||||
respx_mock.get("/event").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
||||
respx_mock.get("/session").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
||||
|
||||
with pytest.raises(APITimeoutError):
|
||||
client.event.with_streaming_response.list().__enter__()
|
||||
client.session.with_streaming_response.list().__enter__()
|
||||
|
||||
assert _get_open_connections(self.client) == 0
|
||||
|
||||
@mock.patch("opencode_ai._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
|
||||
@pytest.mark.respx(base_url=base_url)
|
||||
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: Opencode) -> None:
|
||||
respx_mock.get("/event").mock(return_value=httpx.Response(500))
|
||||
respx_mock.get("/session").mock(return_value=httpx.Response(500))
|
||||
|
||||
with pytest.raises(APIStatusError):
|
||||
client.event.with_streaming_response.list().__enter__()
|
||||
client.session.with_streaming_response.list().__enter__()
|
||||
assert _get_open_connections(self.client) == 0
|
||||
|
||||
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
||||
|
|
@ -726,9 +726,9 @@ class TestOpencode:
|
|||
return httpx.Response(500)
|
||||
return httpx.Response(200)
|
||||
|
||||
respx_mock.get("/event").mock(side_effect=retry_handler)
|
||||
respx_mock.get("/session").mock(side_effect=retry_handler)
|
||||
|
||||
response = client.event.with_raw_response.list()
|
||||
response = client.session.with_raw_response.list()
|
||||
|
||||
assert response.retries_taken == failures_before_success
|
||||
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
||||
|
|
@ -750,9 +750,9 @@ class TestOpencode:
|
|||
return httpx.Response(500)
|
||||
return httpx.Response(200)
|
||||
|
||||
respx_mock.get("/event").mock(side_effect=retry_handler)
|
||||
respx_mock.get("/session").mock(side_effect=retry_handler)
|
||||
|
||||
response = client.event.with_raw_response.list(extra_headers={"x-stainless-retry-count": Omit()})
|
||||
response = client.session.with_raw_response.list(extra_headers={"x-stainless-retry-count": Omit()})
|
||||
|
||||
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
||||
|
||||
|
|
@ -773,9 +773,9 @@ class TestOpencode:
|
|||
return httpx.Response(500)
|
||||
return httpx.Response(200)
|
||||
|
||||
respx_mock.get("/event").mock(side_effect=retry_handler)
|
||||
respx_mock.get("/session").mock(side_effect=retry_handler)
|
||||
|
||||
response = client.event.with_raw_response.list(extra_headers={"x-stainless-retry-count": "42"})
|
||||
response = client.session.with_raw_response.list(extra_headers={"x-stainless-retry-count": "42"})
|
||||
|
||||
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
||||
|
||||
|
|
@ -1468,10 +1468,10 @@ class TestAsyncOpencode:
|
|||
async def test_retrying_timeout_errors_doesnt_leak(
|
||||
self, respx_mock: MockRouter, async_client: AsyncOpencode
|
||||
) -> None:
|
||||
respx_mock.get("/event").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
||||
respx_mock.get("/session").mock(side_effect=httpx.TimeoutException("Test timeout error"))
|
||||
|
||||
with pytest.raises(APITimeoutError):
|
||||
await async_client.event.with_streaming_response.list().__aenter__()
|
||||
await async_client.session.with_streaming_response.list().__aenter__()
|
||||
|
||||
assert _get_open_connections(self.client) == 0
|
||||
|
||||
|
|
@ -1480,10 +1480,10 @@ class TestAsyncOpencode:
|
|||
async def test_retrying_status_errors_doesnt_leak(
|
||||
self, respx_mock: MockRouter, async_client: AsyncOpencode
|
||||
) -> None:
|
||||
respx_mock.get("/event").mock(return_value=httpx.Response(500))
|
||||
respx_mock.get("/session").mock(return_value=httpx.Response(500))
|
||||
|
||||
with pytest.raises(APIStatusError):
|
||||
await async_client.event.with_streaming_response.list().__aenter__()
|
||||
await async_client.session.with_streaming_response.list().__aenter__()
|
||||
assert _get_open_connections(self.client) == 0
|
||||
|
||||
@pytest.mark.parametrize("failures_before_success", [0, 2, 4])
|
||||
|
|
@ -1511,9 +1511,9 @@ class TestAsyncOpencode:
|
|||
return httpx.Response(500)
|
||||
return httpx.Response(200)
|
||||
|
||||
respx_mock.get("/event").mock(side_effect=retry_handler)
|
||||
respx_mock.get("/session").mock(side_effect=retry_handler)
|
||||
|
||||
response = await client.event.with_raw_response.list()
|
||||
response = await client.session.with_raw_response.list()
|
||||
|
||||
assert response.retries_taken == failures_before_success
|
||||
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
|
||||
|
|
@ -1536,9 +1536,9 @@ class TestAsyncOpencode:
|
|||
return httpx.Response(500)
|
||||
return httpx.Response(200)
|
||||
|
||||
respx_mock.get("/event").mock(side_effect=retry_handler)
|
||||
respx_mock.get("/session").mock(side_effect=retry_handler)
|
||||
|
||||
response = await client.event.with_raw_response.list(extra_headers={"x-stainless-retry-count": Omit()})
|
||||
response = await client.session.with_raw_response.list(extra_headers={"x-stainless-retry-count": Omit()})
|
||||
|
||||
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
|
||||
|
||||
|
|
@ -1560,9 +1560,9 @@ class TestAsyncOpencode:
|
|||
return httpx.Response(500)
|
||||
return httpx.Response(200)
|
||||
|
||||
respx_mock.get("/event").mock(side_effect=retry_handler)
|
||||
respx_mock.get("/session").mock(side_effect=retry_handler)
|
||||
|
||||
response = await client.event.with_raw_response.list(extra_headers={"x-stainless-retry-count": "42"})
|
||||
response = await client.session.with_raw_response.list(extra_headers={"x-stainless-retry-count": "42"})
|
||||
|
||||
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue