def test_set_loggers_Filehandler(tmpdir): logger = logging.getLogger() orig_handlers = logger.handlers logger.handlers = [] logfile = Path(tmpdir) / 'ft_logfile.log' config = { 'verbosity': 2, 'logfile': str(logfile), } setup_logging_pre() setup_logging(config) assert len(logger.handlers) == 3 assert [ x for x in logger.handlers if type(x) == logging.handlers.RotatingFileHandler ] assert [x for x in logger.handlers if type(x) == logging.StreamHandler] assert [ x for x in logger.handlers if type(x) == logging.handlers.BufferingHandler ] # setting up logging again should NOT cause the loggers to be added a second time. setup_logging(config) assert len(logger.handlers) == 3 # reset handlers to not break pytest if logfile.exists: logfile.unlink() logger.handlers = orig_handlers
def botclient(default_conf, mocker): setup_logging_pre() setup_logging(default_conf) default_conf['runmode'] = RunMode.DRY_RUN default_conf.update({ "api_server": { "enabled": True, "listen_ip_address": "127.0.0.1", "listen_port": 8080, "CORS_origins": ['http://example.com'], "username": _TEST_USER, "password": _TEST_PASS, } }) ftbot = get_patched_freqtradebot(mocker, default_conf) rpc = RPC(ftbot) mocker.patch('freqtrade.rpc.api_server.ApiServer.start_api', MagicMock()) try: apiserver = ApiServer(default_conf) apiserver.add_rpc_handler(rpc) yield ftbot, TestClient(apiserver.app) # Cleanup ... ? finally: ApiServer.shutdown()
def test_set_loggers_syslog(): logger = logging.getLogger() orig_handlers = logger.handlers logger.handlers = [] config = { 'verbosity': 2, 'logfile': 'syslog:/dev/log', } setup_logging_pre() setup_logging(config) assert len(logger.handlers) == 3 assert [ x for x in logger.handlers if type(x) == logging.handlers.SysLogHandler ] assert [x for x in logger.handlers if type(x) == logging.StreamHandler] assert [ x for x in logger.handlers if type(x) == logging.handlers.BufferingHandler ] # setting up logging again should NOT cause the loggers to be added a second time. setup_logging(config) assert len(logger.handlers) == 3 # reset handlers to not break pytest logger.handlers = orig_handlers
def _process_logging_options(self, config: Dict[str, Any]) -> None: """ Extract information for sys.argv and load logging configuration: the -v/--verbose, --logfile options """ # Log level config.update({'verbosity': self.args.get('verbosity', 0)}) if 'logfile' in self.args and self.args['logfile']: config.update({'logfile': self.args['logfile']}) setup_logging(config)
def test_set_loggers_journald_importerror(mocker, import_fails): logger = logging.getLogger() orig_handlers = logger.handlers logger.handlers = [] config = {'verbosity': 2, 'logfile': 'journald', } with pytest.raises(OperationalException, match=r'You need the systemd python package.*'): setup_logging(config) logger.handlers = orig_handlers
def test_set_loggers_journald(mocker): logger = logging.getLogger() orig_handlers = logger.handlers logger.handlers = [] config = {'verbosity': 2, 'logfile': 'journald', } setup_logging(config) assert len(logger.handlers) == 2 assert [x for x in logger.handlers if type(x).__name__ == "JournaldLogHandler"] assert [x for x in logger.handlers if type(x) == logging.StreamHandler] # reset handlers to not break pytest logger.handlers = orig_handlers
def test_set_loggers_syslog(mocker): logger = logging.getLogger() orig_handlers = logger.handlers logger.handlers = [] config = {'verbosity': 2, 'logfile': 'syslog:/dev/log', } setup_logging(config) assert len(logger.handlers) == 2 assert [x for x in logger.handlers if type(x) == logging.handlers.SysLogHandler] assert [x for x in logger.handlers if type(x) == logging.StreamHandler] # reset handlers to not break pytest logger.handlers = orig_handlers
def botclient(default_conf, mocker): setup_logging_pre() setup_logging(default_conf) default_conf['runmode'] = RunMode.DRY_RUN default_conf.update({"api_server": {"enabled": True, "listen_ip_address": "127.0.0.1", "listen_port": 8080, "CORS_origins": ['http://example.com'], "username": _TEST_USER, "password": _TEST_PASS, }}) ftbot = get_patched_freqtradebot(mocker, default_conf) mocker.patch('freqtrade.rpc.api_server.ApiServer.run', MagicMock()) apiserver = ApiServer(ftbot) yield ftbot, apiserver.app.test_client()