Skip to content

Commit 6f7fb27

Browse files
Add client lifecycle and annotation regression tests
Co-authored-by: Shri Sukhani <shrisukhani@users.noreply.github.com>
1 parent 4a8ca64 commit 6f7fb27

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

‎tests/test_client_lifecycle.py‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import asyncio
2+
3+
from hyperbrowser.client.async_client import AsyncHyperbrowser
4+
from hyperbrowser.client.managers.async_manager.session import SessionEventLogsManager
5+
from hyperbrowser.client.sync import Hyperbrowser
6+
from hyperbrowser.models.session import SessionEventLogListResponse
7+
8+
9+
def test_sync_client_supports_context_manager():
10+
client = Hyperbrowser(api_key="test-key")
11+
close_calls = {"count": 0}
12+
original_close = client.transport.close
13+
14+
def tracked_close() -> None:
15+
close_calls["count"] += 1
16+
original_close()
17+
18+
client.transport.close = tracked_close
19+
20+
with client as entered:
21+
assert entered is client
22+
23+
assert close_calls["count"] == 1
24+
25+
26+
def test_async_client_supports_context_manager():
27+
async def run() -> None:
28+
async with AsyncHyperbrowser(api_key="test-key") as client:
29+
assert isinstance(client, AsyncHyperbrowser)
30+
31+
asyncio.run(run())
32+
33+
34+
def test_async_session_event_logs_annotation_is_response_model():
35+
assert (
36+
SessionEventLogsManager.list.__annotations__["return"]
37+
is SessionEventLogListResponse
38+
)

0 commit comments

Comments
 (0)