Stop the node.
(self, expected_stderr='', *, wait=0, wait_until_stopped=True)
| 340 | return self.version is None or self.version >= ver |
| 341 | |
| 342 | def stop_node(self, expected_stderr='', *, wait=0, wait_until_stopped=True): |
| 343 | """Stop the node.""" |
| 344 | if not self.running: |
| 345 | return |
| 346 | self.log.debug("Stopping node") |
| 347 | try: |
| 348 | # Do not use wait argument when testing older nodes, e.g. in feature_backwards_compatibility.py |
| 349 | if self.version_is_at_least(180000): |
| 350 | self.stop(wait=wait) |
| 351 | else: |
| 352 | self.stop() |
| 353 | except http.client.CannotSendRequest: |
| 354 | self.log.exception("Unable to stop node.") |
| 355 | |
| 356 | # If there are any running perf processes, stop them. |
| 357 | for profile_name in tuple(self.perf_subprocesses.keys()): |
| 358 | self._stop_perf(profile_name) |
| 359 | |
| 360 | # Check that stderr is as expected |
| 361 | self.stderr.seek(0) |
| 362 | stderr = self.stderr.read().decode('utf-8').strip() |
| 363 | if stderr != expected_stderr: |
| 364 | raise AssertionError("Unexpected stderr {} != {}".format(stderr, expected_stderr)) |
| 365 | |
| 366 | self.stdout.close() |
| 367 | self.stderr.close() |
| 368 | |
| 369 | del self.p2ps[:] |
| 370 | |
| 371 | if wait_until_stopped: |
| 372 | self.wait_until_stopped() |
| 373 | |
| 374 | def is_node_stopped(self): |
| 375 | """Checks whether the node has stopped. |
no test coverage detected