def test_dynamic_change(self): """ Test with changing configuration """ # start with the default on StorageConfiguration.CONFIG_PATH = "/" StorageConfiguration.CONFIG_FILE = "/configs/not-existing.conf" cfg = StorageConfiguration() self.logmgr.set_config(cfg) # log at various log levels) self.logger.error("E1") self.logger.warn("W1") self.logger.info("I1") self.logger.debug("D1") self.logger.trace_warn("w1") self.logger.trace_info("i1") self.logger.trace_verbose("v1") # enable tracing and stderr cfg.config.set("Log", "Debug", "true") cfg.config.set("Log", "Stderr", "true") cfg._call_listeners() # log at various log levels) self.logger.error("E2") self.logger.warn("W2") self.logger.info("I2") self.logger.debug("D2") self.logger.trace_warn("w2") self.logger.trace_info("i2") self.logger.trace_verbose("v2") # disable tracing and stderr cfg.config.set("Log", "Debug", "false") cfg.config.set("Log", "Stderr", "false") cfg._call_listeners() # log at various log levels) self.logger.error("E3") self.logger.warn("W3") self.logger.info("I3") self.logger.debug("D3") self.logger.trace_warn("w3") self.logger.trace_info("i3") self.logger.trace_verbose("v3") # check that the messages went through CMPILoggerMock cmpi = self.cmpi_stream.getvalue() stderr = self.stderr_stream.getvalue() self.assertEqual(cmpi, "I:INFO: CMPI log startedE:ERROR: E1W:WARNING: W1I:INFO: I1I:INFO: Started logging to stderr.v:DEBUG: Exiting LogManager._config_changedv:DEBUG: Exiting StorageConfiguration._call_listenersE:ERROR: E2W:WARNING: W2I:INFO: I2v:DEBUG: D2w:Level 19: w2i:Level 18: i2v:DEBUG: v2v:DEBUG: Entering StorageConfiguration._call_listenersv:DEBUG: Entering LogManager._config_changedI:INFO: Stopped logging to stderr.E:ERROR: E3W:WARNING: W3I:INFO: I3") self.assertEqual(stderr, "INFO: Started logging to stderr.\nDEBUG: Exiting LogManager._config_changed\nDEBUG: Exiting StorageConfiguration._call_listeners\nERROR: E2\nWARNING: W2\nINFO: I2\nDEBUG: D2\nLevel 19: w2\nLevel 18: i2\nDEBUG: v2\nDEBUG: Entering StorageConfiguration._call_listeners\nDEBUG: Entering LogManager._config_changed\nINFO: Stopped logging to stderr.\n")