File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed
Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -26,9 +26,10 @@ def __init__(
2626 )
2727
2828 if config is None :
29+ api_key_from_constructor = api_key is not None
2930 resolved_api_key = (
3031 api_key
31- if api_key is not None
32+ if api_key_from_constructor
3233 else os .environ .get ("HYPERBROWSER_API_KEY" )
3334 )
3435 if resolved_api_key is None :
@@ -38,6 +39,8 @@ def __init__(
3839 if not isinstance (resolved_api_key , str ):
3940 raise HyperbrowserError ("api_key must be a string" )
4041 if not resolved_api_key .strip ():
42+ if api_key_from_constructor :
43+ raise HyperbrowserError ("api_key must not be empty" )
4144 raise HyperbrowserError (
4245 "API key must be provided via `api_key` or HYPERBROWSER_API_KEY"
4346 )
Original file line number Diff line number Diff line change @@ -62,3 +62,17 @@ def test_sync_client_rejects_non_string_api_key():
6262def test_async_client_rejects_non_string_api_key ():
6363 with pytest .raises (HyperbrowserError , match = "api_key must be a string" ):
6464 AsyncHyperbrowser (api_key = 123 ) # type: ignore[arg-type]
65+
66+
67+ def test_sync_client_rejects_blank_constructor_api_key (monkeypatch ):
68+ monkeypatch .setenv ("HYPERBROWSER_API_KEY" , "env-key" )
69+
70+ with pytest .raises (HyperbrowserError , match = "api_key must not be empty" ):
71+ Hyperbrowser (api_key = " " )
72+
73+
74+ def test_async_client_rejects_blank_constructor_api_key (monkeypatch ):
75+ monkeypatch .setenv ("HYPERBROWSER_API_KEY" , "env-key" )
76+
77+ with pytest .raises (HyperbrowserError , match = "api_key must not be empty" ):
78+ AsyncHyperbrowser (api_key = "\t " )
You can’t perform that action at this time.
0 commit comments