File tree Expand file tree Collapse file tree 3 files changed +26
-16
lines changed
Expand file tree Collapse file tree 3 files changed +26
-16
lines changed Original file line number Diff line number Diff line change @@ -48,16 +48,10 @@ def __init__(
4848 os .environ .get ("HYPERBROWSER_HEADERS" )
4949 )
5050 )
51- env_base_url = os .environ .get ("HYPERBROWSER_BASE_URL" )
5251 if base_url is None :
53- if env_base_url is None :
54- resolved_base_url = "https://api.hyperbrowser.ai"
55- elif not env_base_url .strip ():
56- raise HyperbrowserError (
57- "HYPERBROWSER_BASE_URL must not be empty when set"
58- )
59- else :
60- resolved_base_url = env_base_url
52+ resolved_base_url = ClientConfig .resolve_base_url_from_env (
53+ os .environ .get ("HYPERBROWSER_BASE_URL" )
54+ )
6155 else :
6256 resolved_base_url = base_url
6357 config = ClientConfig (
Original file line number Diff line number Diff line change @@ -51,16 +51,20 @@ def from_env(cls) -> "ClientConfig":
5151 "HYPERBROWSER_API_KEY environment variable is required"
5252 )
5353
54- raw_base_url = os .environ .get ("HYPERBROWSER_BASE_URL" )
55- if raw_base_url is None :
56- base_url = "https://api.hyperbrowser.ai"
57- elif not raw_base_url .strip ():
58- raise HyperbrowserError ("HYPERBROWSER_BASE_URL must not be empty when set" )
59- else :
60- base_url = raw_base_url
54+ base_url = cls .resolve_base_url_from_env (
55+ os .environ .get ("HYPERBROWSER_BASE_URL" )
56+ )
6157 headers = cls .parse_headers_from_env (os .environ .get ("HYPERBROWSER_HEADERS" ))
6258 return cls (api_key = api_key , base_url = base_url , headers = headers )
6359
6460 @staticmethod
6561 def parse_headers_from_env (raw_headers : Optional [str ]) -> Optional [Dict [str , str ]]:
6662 return parse_headers_env_json (raw_headers )
63+
64+ @staticmethod
65+ def resolve_base_url_from_env (raw_base_url : Optional [str ]) -> str :
66+ if raw_base_url is None :
67+ return "https://api.hyperbrowser.ai"
68+ if not raw_base_url .strip ():
69+ raise HyperbrowserError ("HYPERBROWSER_BASE_URL must not be empty when set" )
70+ return raw_base_url
Original file line number Diff line number Diff line change @@ -276,3 +276,15 @@ def test_client_config_parse_headers_from_env_rejects_non_string_input():
276276 HyperbrowserError , match = "HYPERBROWSER_HEADERS must be a string"
277277 ):
278278 ClientConfig .parse_headers_from_env (123 ) # type: ignore[arg-type]
279+
280+
281+ def test_client_config_resolve_base_url_from_env_defaults_and_rejects_blank ():
282+ assert ClientConfig .resolve_base_url_from_env (None ) == "https://api.hyperbrowser.ai"
283+ assert (
284+ ClientConfig .resolve_base_url_from_env ("https://example.local" )
285+ == "https://example.local"
286+ )
287+ with pytest .raises (
288+ HyperbrowserError , match = "HYPERBROWSER_BASE_URL must not be empty"
289+ ):
290+ ClientConfig .resolve_base_url_from_env (" " )
You can’t perform that action at this time.
0 commit comments