MCPcopy Create free account
hub / github.com/couchbase/couchbase-python-client / _invoke

Method _invoke

tests/mock_server.py:184–223  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

182 self._port = port
183
184 def _invoke(self):
185 self._setup_listener()
186 args = [
187 "java", "-client", "-jar", self._runpath,
188 "--port", "0", "--with-beer-sample",
189 "--harakiri-monitor", "127.0.0.1:" + str(self._port),
190 "--nodes", str(self._nodes)
191 ]
192
193 if self._vbuckets is not None:
194 args += ["--vbuckets", str(self._vbuckets)]
195
196 if self._replicas is not None:
197 args += ["--replicas", str(self._replicas)]
198
199 bspec = ",".join([str(x) for x in self._buckets])
200 args += ["--buckets", bspec]
201
202 self._po = Popen(args)
203
204 # Sometimes we get an invalid JAR file. Unfortunately there is no
205 # way to determine or "wait for completion". The next best thing
206 # is to set a maximum of 15 seconds for the process to start (and
207 # connect to the listening socket);
208
209 rlist, _, _ = select.select([self._listen], [], [], 15)
210 if not rlist:
211 raise MockServerException(
212 'Mock server was not ready in time')
213
214 self._harakiri_sock, _ = self._listen.accept()
215 self._ctlfp = self._harakiri_sock.makefile()
216
217 sbuf = ""
218 while True:
219 c = self._ctlfp.read(1)
220 if c == '\0':
221 break
222 sbuf += c
223 self._rest_port = int(sbuf)
224
225 def _attempt_shutdown(self):
226 try:

Callers 1

startMethod · 0.95

Calls 2

_setup_listenerMethod · 0.95
MockServerExceptionClass · 0.85

Tested by

no test coverage detected