Skip to content

Commit 870c036

Browse files
committed
TEST - add tests for logging and error level; rename logger
1 parent bdb7117 commit 870c036

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

nibabel/imageglobals.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@
2222
import logging
2323

2424
error_level = 40
25-
logger = logging.getLogger('nifti.global')
25+
logger = logging.getLogger('nibabel.global')
2626
logger.addHandler(logging.StreamHandler())

nibabel/tests/test_analyze.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
ImageDataError
5656
from ..analyze import AnalyzeHeader, AnalyzeImage
5757
from ..loadsave import read_img_data
58+
from .. import imageglobals
5859

5960
from ..testing import parametric, data_path, ParametricTestCase
6061

@@ -64,6 +65,7 @@
6465

6566
header_file = os.path.join(data_path, 'analyze.hdr')
6667

68+
PIXDIM0_MSG = 'pixdim[1,2,3] should be non-zero; setting 0 dims to 1'
6769

6870
def _log_chk(hdr, level):
6971
# utility function to check header checking / logging
@@ -189,8 +191,7 @@ def test_log_checks(self):
189191
hdr['pixdim'][1] = 0 # severity 30
190192
fhdr, message, raiser = _log_chk(hdr, 30)
191193
yield assert_equal(fhdr['pixdim'][1], 1)
192-
yield assert_equal(message, 'pixdim[1,2,3] should be '
193-
'non-zero; setting 0 dims to 1')
194+
yield assert_equal(message, PIXDIM0_MSG)
194195
yield assert_raises(*raiser)
195196
# both
196197
hdr = HC()
@@ -205,6 +206,30 @@ def test_log_checks(self):
205206
'and setting to abs of pixdim values')
206207
yield assert_raises(*raiser)
207208

209+
def test_logger_error(self):
210+
# Check that we can reset the logger and error level
211+
HC = self.header_class
212+
hdr = HC()
213+
# Make a new logger
214+
str_io = StringIO()
215+
logger = logging.getLogger('test.logger')
216+
logger.setLevel(30) # defaultish level
217+
logger.addHandler(logging.StreamHandler(str_io))
218+
# Prepare an error
219+
hdr['pixdim'][1] = 0 # severity 30
220+
log_cache = imageglobals.logger, imageglobals.error_level
221+
try:
222+
# Check log message appears in new logger
223+
imageglobals.logger = logger
224+
hdr.copy().check_fix()
225+
assert_equal(str_io.getvalue(), PIXDIM0_MSG + '\n')
226+
# Check that error_level in fact causes error to be raised
227+
imageglobals.error_level = 30
228+
assert_raises(HeaderDataError, hdr.copy().check_fix)
229+
finally:
230+
imageglobals.logger, imageglobals.error_level = log_cache
231+
232+
208233
def test_datatype(self):
209234
ehdr = self.header_class()
210235
codes = self.header_class._data_type_codes

0 commit comments

Comments
 (0)