def test_reset_log_emergence_level(self): """Test the `_reset_log_emergence_level` internal function.""" # 'DISABLE' is special case so test it afterwards (see below) for value in self.valid_level_values: cfdm.functions._reset_log_emergence_level(value) # getLevelName() converts to string. Otherwise gives # Python logging int equivalent, which is not the scale we use: if isinstance(value, int) and cfdm._is_valid_log_level_int(value): value = cfdm.constants.ValidLogLevels(value).name self.assertTrue( cfdm.logging.getLevelName(cfdm.logging.getLogger().level) == value ) # Now test 'DISABLE' (0) special case; should not change level as such previous = logging.getLevelName(cfdm.logging.getLogger().level) cfdm.functions._reset_log_emergence_level("DISABLE") self.assertTrue( cfdm.logging.getLevelName(cfdm.logging.getLogger().level) == previous ) # ... but test that it has disabled logging, as it is designed to do! self.assertFalse(cfdm.logging.getLogger().isEnabledFor(logging.DEBUG)) self.assertFalse( cfdm.logging.getLogger().isEnabledFor(logging.WARNING) )
def test_log_level(self): """Test the `log_level` function.""" original = self.__class__.original # original to module i.e. default self.assertEqual(original, "WARNING") # test default cfdm.LOG_LEVEL(original) # reset from setUp() value to avoid coupling # Now test getting and setting for all valid values in turn, # where use fact that setting returns old value hence set # value on next call: previous = cfdm.log_level() for value in self.valid_log_values_ci: self.assertEqual(cfdm.LOG_LEVEL(value), previous) previous = cfdm.LOG_LEVEL() # update previous value # Some conversions to equivalent, standardised return value: if isinstance(value, int) and cfdm._is_valid_log_level_int( value ): # str from LOG_LEVEL value = cfdm.constants.ValidLogLevels(value).name # convert if isinstance(value, str): # LOG_LEVEL returns all caps string value = value.upper() self.assertEqual(previous, value) with self.assertRaises(ValueError): cfdm.log_level(4) cfdm.LOG_LEVEL(4) # check alias too with self.assertRaises(ValueError): cfdm.log_level("ERROR") # notable as is valid Python logging level cfdm.LOG_LEVEL("ERROR")