@@ -122,7 +122,8 @@ def __new__(cls,
122122 ssl_key_file = None ,
123123 ssl_cert_file = None ,
124124 ssl_ca_file = None ,
125- ssl_ciphers = None ):
125+ ssl_ciphers = None ,
126+ create_unix_socket = False ):
126127 if os .name == 'nt' :
127128 from .remote_tarantool_server import RemoteTarantoolServer
128129 return RemoteTarantoolServer ()
@@ -133,12 +134,23 @@ def __init__(self,
133134 ssl_key_file = None ,
134135 ssl_cert_file = None ,
135136 ssl_ca_file = None ,
136- ssl_ciphers = None ):
137+ ssl_ciphers = None ,
138+ create_unix_socket = False ):
137139 os .popen ('ulimit -c unlimited' )
138- self .host = 'localhost'
139- self .args = {}
140- self .args ['primary' ] = find_port ()
141- self .args ['admin' ] = find_port (self .args ['primary' ] + 1 )
140+
141+ if create_unix_socket :
142+ self .host = None
143+ self .args = {}
144+ self ._socket = tempfile .NamedTemporaryFile (suffix = '.sock' , delete = False )
145+ self .args ['primary' ] = self ._socket .name
146+ self .args ['admin' ] = find_port ()
147+ else :
148+ self .host = 'localhost'
149+ self .args = {}
150+ self ._socket = None
151+ self .args ['primary' ] = find_port ()
152+ self .args ['admin' ] = find_port (self .args ['primary' ] + 1 )
153+
142154 self ._admin = self .args ['admin' ]
143155 self .vardir = tempfile .mkdtemp (prefix = 'var_' , dir = os .getcwd ())
144156 self .find_exe ()
@@ -244,6 +256,12 @@ def clean(self):
244256 if os .path .isdir (self .vardir ):
245257 shutil .rmtree (self .vardir )
246258
259+ if os .path .exists (self .args ['primary' ]):
260+ os .remove (self .args ['primary' ])
261+
262+ if (self ._socket is not None ) and (not self ._socket .file .closed ):
263+ self ._socket .close ()
264+
247265 def __del__ (self ):
248266 self .stop ()
249267 self .clean ()
0 commit comments