Skip to content

Commit 134ce02

Browse files
committed
preserve logging level in tests of main()
1 parent 1fc046f commit 134ce02

1 file changed

Lines changed: 32 additions & 9 deletions

File tree

test/test_query.py

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,22 @@
2323
_LOG = logging.getLogger(__name__)
2424

2525

26+
@contextlib.contextmanager
27+
def temporarily_set_logger_level(logger_name: str, level: int):
28+
"""Change logger level on enter and restore on exit of this context."""
29+
logger = logging.getLogger(logger_name)
30+
level_ = logger.level
31+
logger.setLevel(level)
32+
try:
33+
yield
34+
finally:
35+
logger.setLevel(level_)
36+
37+
38+
def preserve_logger_level(logger_name: str):
39+
return temporarily_set_logger_level(logger_name, logging.getLogger(logger_name).level)
40+
41+
2642
class Tests(unittest.TestCase):
2743

2844
def _check_examples_count(self, description, examples):
@@ -87,7 +103,8 @@ def test_query_pkg_info(self):
87103

88104
@unittest.skipUnless(os.environ.get('TEST_PACKAGING'), 'skipping packaging test')
89105
def test_query_pkg_info_current(self):
90-
run_module('setup', 'build')
106+
with preserve_logger_level('system_query'):
107+
run_module('setup', 'build')
91108
paths = list(pathlib.Path.cwd().glob('*.egg-info/PKG-INFO'))
92109
self.assertEqual(len(paths), 1)
93110
path = paths[0]
@@ -118,7 +135,8 @@ def test_query_package_folder(self):
118135

119136
@unittest.skipUnless(os.environ.get('TEST_PACKAGING'), 'skipping packaging test')
120137
def test_query_package_folder_current(self):
121-
run_module('setup', 'build')
138+
with preserve_logger_level('system_query'):
139+
run_module('setup', 'build')
122140
path = pathlib.Path.cwd().joinpath('version_query')
123141
version = query_package_folder(path)
124142
_LOG.debug('%s: %s', path, version)
@@ -144,34 +162,39 @@ def test_not_as_main(self): # pylint: disable = no-self-use
144162
def test_help(self):
145163
sio = io.StringIO()
146164
with contextlib.redirect_stderr(sio):
147-
with self.assertRaises(SystemExit):
148-
run_module('version_query')
165+
with preserve_logger_level('system_query'):
166+
with self.assertRaises(SystemExit):
167+
run_module('version_query')
149168
_LOG.info('%s', sio.getvalue())
150169

151170
def test_bad_usage(self):
152171
sio = io.StringIO()
153172
with contextlib.redirect_stderr(sio):
154-
with self.assertRaises(ValueError):
155-
run_module('version_query', '-p', '-i', '.')
173+
with preserve_logger_level('system_query'):
174+
with self.assertRaises(ValueError):
175+
run_module('version_query', '-p', '-i', '.')
156176
_LOG.info('%s', sio.getvalue())
157177

158178
def test_here(self):
159179
sio = io.StringIO()
160180
with contextlib.redirect_stdout(sio):
161-
run_module('version_query', '.')
181+
with preserve_logger_level('system_query'):
182+
run_module('version_query', '.')
162183
self.assertEqual(sio.getvalue().rstrip(), query_caller().to_str())
163184
self.assertEqual(sio.getvalue().rstrip(), query_version_str())
164185

165186
def test_increment_here(self):
166187
sio = io.StringIO()
167188
with contextlib.redirect_stdout(sio):
168-
run_module('version_query', '-i', '.')
189+
with preserve_logger_level('system_query'):
190+
run_module('version_query', '-i', '.')
169191
self.assertEqual(sio.getvalue().rstrip(),
170192
query_caller().increment(VersionComponent.Patch).to_str())
171193

172194
def test_predict_here(self):
173195
sio = io.StringIO()
174196
with contextlib.redirect_stdout(sio):
175-
run_module('version_query', '-p', '.')
197+
with preserve_logger_level('system_query'):
198+
run_module('version_query', '-p', '.')
176199
self.assertEqual(sio.getvalue().rstrip(), predict_caller().to_str())
177200
self.assertEqual(sio.getvalue().rstrip(), predict_version_str())

0 commit comments

Comments
 (0)