File tree Expand file tree Collapse file tree
hyperbrowser/client/managers Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11from pydantic import BaseModel
22from typing import Union , List , Optional
3+ from hyperbrowser .exceptions import HyperbrowserError
34from hyperbrowser .models import (
45 SessionDetail ,
56 ComputerActionParams ,
@@ -32,7 +33,9 @@ async def _execute_request(
3233 session = await self ._client .sessions .get (session )
3334
3435 if not session .computer_action_endpoint :
35- raise ValueError ("Computer action endpoint not available for this session" )
36+ raise HyperbrowserError (
37+ "Computer action endpoint not available for this session"
38+ )
3639
3740 if isinstance (params , BaseModel ):
3841 payload = params .model_dump (by_alias = True , exclude_none = True )
Original file line number Diff line number Diff line change 11from pydantic import BaseModel
22from typing import Union , List , Optional
3+ from hyperbrowser .exceptions import HyperbrowserError
34from hyperbrowser .models import (
45 SessionDetail ,
56 ComputerActionParams ,
@@ -32,7 +33,9 @@ def _execute_request(
3233 session = self ._client .sessions .get (session )
3334
3435 if not session .computer_action_endpoint :
35- raise ValueError ("Computer action endpoint not available for this session" )
36+ raise HyperbrowserError (
37+ "Computer action endpoint not available for this session"
38+ )
3639
3740 if isinstance (params , BaseModel ):
3841 payload = params .model_dump (by_alias = True , exclude_none = True )
Original file line number Diff line number Diff line change 1+ import asyncio
2+ from types import SimpleNamespace
3+
4+ import pytest
5+
6+ from hyperbrowser .client .managers .async_manager .computer_action import (
7+ ComputerActionManager as AsyncComputerActionManager ,
8+ )
9+ from hyperbrowser .client .managers .sync_manager .computer_action import (
10+ ComputerActionManager as SyncComputerActionManager ,
11+ )
12+ from hyperbrowser .exceptions import HyperbrowserError
13+
14+
15+ class _DummyClient :
16+ def __init__ (self ) -> None :
17+ self .sessions = None
18+ self .transport = None
19+
20+
21+ def test_sync_computer_action_manager_raises_hyperbrowser_error_without_endpoint ():
22+ manager = SyncComputerActionManager (_DummyClient ())
23+ session = SimpleNamespace (computer_action_endpoint = None )
24+
25+ with pytest .raises (
26+ HyperbrowserError , match = "Computer action endpoint not available"
27+ ):
28+ manager .screenshot (session )
29+
30+
31+ def test_async_computer_action_manager_raises_hyperbrowser_error_without_endpoint ():
32+ async def run () -> None :
33+ manager = AsyncComputerActionManager (_DummyClient ())
34+ session = SimpleNamespace (computer_action_endpoint = None )
35+
36+ with pytest .raises (
37+ HyperbrowserError , match = "Computer action endpoint not available"
38+ ):
39+ await manager .screenshot (session )
40+
41+ asyncio .run (run ())
You can’t perform that action at this time.
0 commit comments