Skip to content

Commit e00b893

Browse files
committed
Bug 1908915 - Don't produce verbose geckodriver logs for mach test-interventions, r=twisniewski
Instead of always passing in `-vv`, pass in `-vv` if the `debug` flag is set, or `-v` if we have some mozlog logger that's configured to debug level. Differential Revision: https://phabricator.services.mozilla.com/D217099
1 parent 8e7aeec commit e00b893

File tree

3 files changed

+40
-4
lines changed

3 files changed

+40
-4
lines changed

testing/webcompat/fixtures.py

+10-4
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ def __init__(self, config):
3232
self.addon = config.getoption("addon")
3333
self.webdriver_binary = config.getoption("webdriver_binary")
3434
self.port = config.getoption("webdriver_port")
35-
self.wsPort = config.getoption("webdriver_ws_port")
35+
self.ws_port = config.getoption("webdriver_ws_port")
36+
self.log_level = config.getoption("webdriver_log_level")
3637
self.headless = config.getoption("headless")
38+
self.debug = config.getoption("debug")
3739
self.proc = None
3840

3941
def command_line_driver(self):
@@ -53,14 +55,18 @@ def __exit__(self, *args, **kwargs):
5355

5456
class FirefoxWebDriver(WebDriver):
5557
def command_line_driver(self):
56-
return [
58+
rv = [
5759
self.webdriver_binary,
5860
"--port",
5961
str(self.port),
6062
"--websocket-port",
61-
str(self.wsPort),
62-
"-vv",
63+
str(self.ws_port),
6364
]
65+
if self.debug:
66+
rv.append("-vv")
67+
elif self.log_level == "DEBUG":
68+
rv.append("-v")
69+
return rv
6470

6571
def capabilities(self, test_config):
6672
prefs = {}

testing/webcompat/mach_commands.py

+21
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,26 @@ def run(self, command_context, **kwargs):
231231
"test-interventions", kwargs, {"mach": sys.stdout}
232232
)
233233
logger = mozlog.get_default_logger("test-interventions")
234+
235+
log_level = "INFO"
236+
# It's not trivial to get a single log level out of mozlog, because we might have
237+
# different levels going to different outputs. We look for the maximum (i.e. most
238+
# verbose) level of any handler with an attached formatter.
239+
configured_level_number = None
240+
for handler in logger.handlers:
241+
if hasattr(handler, "formatter") and hasattr(handler.formatter, "level"):
242+
formatter_level = handler.formatter.level
243+
configured_level_number = (
244+
formatter_level
245+
if configured_level_number is None
246+
else max(configured_level_number, formatter_level)
247+
)
248+
if configured_level_number is not None:
249+
for level, number in mozlog.structuredlog.log_levels.items():
250+
if number == configured_level_number:
251+
log_level = level
252+
break
253+
234254
status_handler = mozlog.handlers.StatusHandler()
235255
logger.add_handler(status_handler)
236256

@@ -262,6 +282,7 @@ def run(self, command_context, **kwargs):
262282
config=kwargs["config"],
263283
headless=kwargs["headless"],
264284
do2fa=kwargs["do2fa"],
285+
log_level=log_level,
265286
)
266287

267288
if kwargs["shims"] != "none":

testing/webcompat/runner.py

+9
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def run(
3030
headless=False,
3131
addon=None,
3232
do2fa=False,
33+
log_level="INFO",
3334
):
3435
""""""
3536
old_environ = os.environ.copy()
@@ -64,6 +65,8 @@ def run(
6465
webdriver_port,
6566
"--webdriver-ws-port",
6667
webdriver_ws_port,
68+
"--webdriver-log-level",
69+
log_level,
6770
]
6871

6972
if debug:
@@ -162,6 +165,12 @@ def pytest_addoption(self, parser):
162165
default="9222",
163166
help="Port on which to run WebDriver BiDi websocket",
164167
)
168+
parser.addoption(
169+
"--webdriver-log-level",
170+
action="store",
171+
default="INFO",
172+
help="Log level to use for WebDriver",
173+
)
165174
parser.addoption(
166175
"--browser", action="store", choices=["firefox"], help="Name of the browser"
167176
)

0 commit comments

Comments
 (0)