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+
2642class 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