|
23 | 23 |
|
24 | 24 | from browserbase import Browserbase, AsyncBrowserbase, APIResponseValidationError |
25 | 25 | from browserbase._types import Omit |
26 | | -from browserbase._utils import maybe_transform |
27 | 26 | from browserbase._models import BaseModel, FinalRequestOptions |
28 | | -from browserbase._constants import RAW_RESPONSE_HEADER |
29 | 27 | from browserbase._exceptions import APIStatusError, APITimeoutError, BrowserbaseError, APIResponseValidationError |
30 | 28 | from browserbase._base_client import ( |
31 | 29 | DEFAULT_TIMEOUT, |
|
35 | 33 | DefaultAsyncHttpxClient, |
36 | 34 | make_request_options, |
37 | 35 | ) |
38 | | -from browserbase.types.session_create_params import SessionCreateParams |
39 | 36 |
|
40 | 37 | from .utils import update_env |
41 | 38 |
|
@@ -725,32 +722,21 @@ def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str |
725 | 722 |
|
726 | 723 | @mock.patch("browserbase._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout) |
727 | 724 | @pytest.mark.respx(base_url=base_url) |
728 | | - def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None: |
| 725 | + def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, client: Browserbase) -> None: |
729 | 726 | respx_mock.post("/v1/sessions").mock(side_effect=httpx.TimeoutException("Test timeout error")) |
730 | 727 |
|
731 | 728 | with pytest.raises(APITimeoutError): |
732 | | - self.client.post( |
733 | | - "/v1/sessions", |
734 | | - body=cast(object, maybe_transform(dict(project_id="your_project_id"), SessionCreateParams)), |
735 | | - cast_to=httpx.Response, |
736 | | - options={"headers": {RAW_RESPONSE_HEADER: "stream"}}, |
737 | | - ) |
| 729 | + client.sessions.with_streaming_response.create(project_id="projectId").__enter__() |
738 | 730 |
|
739 | 731 | assert _get_open_connections(self.client) == 0 |
740 | 732 |
|
741 | 733 | @mock.patch("browserbase._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout) |
742 | 734 | @pytest.mark.respx(base_url=base_url) |
743 | | - def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None: |
| 735 | + def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: Browserbase) -> None: |
744 | 736 | respx_mock.post("/v1/sessions").mock(return_value=httpx.Response(500)) |
745 | 737 |
|
746 | 738 | with pytest.raises(APIStatusError): |
747 | | - self.client.post( |
748 | | - "/v1/sessions", |
749 | | - body=cast(object, maybe_transform(dict(project_id="your_project_id"), SessionCreateParams)), |
750 | | - cast_to=httpx.Response, |
751 | | - options={"headers": {RAW_RESPONSE_HEADER: "stream"}}, |
752 | | - ) |
753 | | - |
| 739 | + client.sessions.with_streaming_response.create(project_id="projectId").__enter__() |
754 | 740 | assert _get_open_connections(self.client) == 0 |
755 | 741 |
|
756 | 742 | @pytest.mark.parametrize("failures_before_success", [0, 2, 4]) |
@@ -1554,32 +1540,25 @@ async def test_parse_retry_after_header(self, remaining_retries: int, retry_afte |
1554 | 1540 |
|
1555 | 1541 | @mock.patch("browserbase._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout) |
1556 | 1542 | @pytest.mark.respx(base_url=base_url) |
1557 | | - async def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None: |
| 1543 | + async def test_retrying_timeout_errors_doesnt_leak( |
| 1544 | + self, respx_mock: MockRouter, async_client: AsyncBrowserbase |
| 1545 | + ) -> None: |
1558 | 1546 | respx_mock.post("/v1/sessions").mock(side_effect=httpx.TimeoutException("Test timeout error")) |
1559 | 1547 |
|
1560 | 1548 | with pytest.raises(APITimeoutError): |
1561 | | - await self.client.post( |
1562 | | - "/v1/sessions", |
1563 | | - body=cast(object, maybe_transform(dict(project_id="your_project_id"), SessionCreateParams)), |
1564 | | - cast_to=httpx.Response, |
1565 | | - options={"headers": {RAW_RESPONSE_HEADER: "stream"}}, |
1566 | | - ) |
| 1549 | + await async_client.sessions.with_streaming_response.create(project_id="projectId").__aenter__() |
1567 | 1550 |
|
1568 | 1551 | assert _get_open_connections(self.client) == 0 |
1569 | 1552 |
|
1570 | 1553 | @mock.patch("browserbase._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout) |
1571 | 1554 | @pytest.mark.respx(base_url=base_url) |
1572 | | - async def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None: |
| 1555 | + async def test_retrying_status_errors_doesnt_leak( |
| 1556 | + self, respx_mock: MockRouter, async_client: AsyncBrowserbase |
| 1557 | + ) -> None: |
1573 | 1558 | respx_mock.post("/v1/sessions").mock(return_value=httpx.Response(500)) |
1574 | 1559 |
|
1575 | 1560 | with pytest.raises(APIStatusError): |
1576 | | - await self.client.post( |
1577 | | - "/v1/sessions", |
1578 | | - body=cast(object, maybe_transform(dict(project_id="your_project_id"), SessionCreateParams)), |
1579 | | - cast_to=httpx.Response, |
1580 | | - options={"headers": {RAW_RESPONSE_HEADER: "stream"}}, |
1581 | | - ) |
1582 | | - |
| 1561 | + await async_client.sessions.with_streaming_response.create(project_id="projectId").__aenter__() |
1583 | 1562 | assert _get_open_connections(self.client) == 0 |
1584 | 1563 |
|
1585 | 1564 | @pytest.mark.parametrize("failures_before_success", [0, 2, 4]) |
|
0 commit comments