Index: tools/telemetry/telemetry/unittest/run_tests.py |
diff --git a/tools/telemetry/telemetry/unittest/run_tests.py b/tools/telemetry/telemetry/unittest/run_tests.py |
index f38348f066da61d5d810023ac243236dfec1e962..85010839982c017c7caa48bd81ca0a672adcae6b 100644 |
--- a/tools/telemetry/telemetry/unittest/run_tests.py |
+++ b/tools/telemetry/telemetry/unittest/run_tests.py |
@@ -80,6 +80,22 @@ def DiscoverAndRunTests( |
return test_result |
+def RestoreLoggingLevel(func): |
+ def _LoggingRestoreWrapper(*args, **kwargs): |
+ # Cache the current logging level, this needs to be done before calling |
+ # parser.parse_args, which changes logging level based on verbosity |
+ # setting. |
+ logging_level = logging.getLogger().getEffectiveLevel() |
+ try: |
+ return func(*args, **kwargs) |
+ finally: |
+ # Restore logging level, which may be changed in parser.parse_args. |
+ logging.getLogger().setLevel(logging_level) |
+ |
+ return _LoggingRestoreWrapper |
+ |
+ |
+@RestoreLoggingLevel |
def Main(args, start_dir, top_level_dir, runner=None): |
"""Unit test suite that collects all test cases for telemetry.""" |
# Add unittest_data to the path so we can import packages from it. |
@@ -99,7 +115,6 @@ def Main(args, start_dir, top_level_dir, runner=None): |
_, args = parser.parse_args(args) |
- logging_level = logging.getLogger().getEffectiveLevel() |
if default_options.verbosity == 0: |
logging.getLogger().setLevel(logging.WARN) |
@@ -129,8 +144,5 @@ def Main(args, start_dir, top_level_dir, runner=None): |
return 0 |
finally: |
options_for_unittests.Set(None, None) |
- if default_options.verbosity == 0: |
- # Restore logging level. |
- logging.getLogger().setLevel(logging_level) |
return 1 |