25
25
from platform import system
26
26
from subprocess import PIPE
27
27
from time import sleep
28
+ from typing import Optional
28
29
from typing import cast
29
30
from urllib import request
30
31
from urllib .error import URLError
@@ -53,6 +54,7 @@ def __init__(
53
54
port : int = 0 ,
54
55
log_output : SubprocessStdAlias = None ,
55
56
env : typing .Optional [typing .Mapping [typing .Any , typing .Any ]] = None ,
57
+ driver_path_env_key : str = None ,
56
58
** kwargs ,
57
59
) -> None :
58
60
if isinstance (log_output , str ):
@@ -64,12 +66,13 @@ def __init__(
64
66
else :
65
67
self .log_output = log_output
66
68
67
- self ._path = executable_path
68
69
self .port = port or utils .free_port ()
69
70
# Default value for every python subprocess: subprocess.Popen(..., creationflags=0)
70
71
self .popen_kw = kwargs .pop ("popen_kw" , {})
71
72
self .creation_flags = self .popen_kw .pop ("creation_flags" , 0 )
72
73
self .env = env or os .environ
74
+ self .DRIVER_PATH_ENV_KEY = driver_path_env_key
75
+ self ._path = self .env_path () or executable_path
73
76
74
77
@property
75
78
def service_url (self ) -> str :
@@ -236,3 +239,6 @@ def _start_process(self, path: str) -> None:
236
239
f"'{ os .path .basename (self ._path )} ' executable may have wrong permissions."
237
240
) from err
238
241
raise
242
+
243
+ def env_path (self ) -> Optional [str ]:
244
+ return os .getenv (self .DRIVER_PATH_ENV_KEY , None )
0 commit comments