From f09346fc1eac598b6738d415c4058fa89616589a Mon Sep 17 00:00:00 2001 From: Herst Date: Sun, 23 Oct 2016 17:15:36 +0200 Subject: [PATCH] [py] Don't write to unused pipe when no log_file --- py/selenium/webdriver/common/service.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/py/selenium/webdriver/common/service.py b/py/selenium/webdriver/common/service.py index a386b60d86de4..3f4299dd0f918 100644 --- a/py/selenium/webdriver/common/service.py +++ b/py/selenium/webdriver/common/service.py @@ -24,16 +24,26 @@ from selenium.common.exceptions import WebDriverException from selenium.webdriver.common import utils +try: + from subprocess import DEVNULL + _HAS_NATIVE_DEVNULL = True +except ImportError: + DEVNULL = -3 + _HAS_NATIVE_DEVNULL = False + class Service(object): - def __init__(self, executable, port=0, log_file=PIPE, env=None, start_error_message=""): + def __init__(self, executable, port=0, log_file=DEVNULL, env=None, start_error_message=""): self.path = executable self.port = port if self.port == 0: self.port = utils.free_port() + if not _HAS_NATIVE_DEVNULL and log_file == DEVNULL: + log_file = open(os.devnull, 'wb') + self.start_error_message = start_error_message self.log_file = log_file self.env = env or os.environ @@ -126,7 +136,7 @@ def stop(self): """ Stops the service. """ - if self.log_file != PIPE: + if self.log_file != PIPE and not (self.log_file == DEVNULL and _HAS_NATIVE_DEVNULL): try: self.log_file.close() except Exception: