Пример #1
0
    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")