return func(*args, **kwargs) else: return func(*args, **kwargs) return with_session def _get_sql_url(db_path, encrypted: bool, db_key=None): if encrypted: return "sqlite+pysqlcipher://:x'" + db_key + "'@/" + db_path else: return "sqlite:///" + db_path CONFIG_DIR = get_arg_config_path() DATABASE_PATH = format_config_path( CONFIG_DIR, "Koala.db" if ENCRYPTED_DB else "windows_Koala.db") logger.debug("Database Path: " + DATABASE_PATH) engine = create_engine(_get_sql_url(db_path=DATABASE_PATH, encrypted=ENCRYPTED_DB, db_key=DB_KEY), future=True) Session = sessionmaker(future=True) Session.configure(bind=engine) @contextmanager def session_manager(): """ Provide a transactional scope around a series of operations """ session = Session()
def test_format_db_path_windows(): db_path = format_config_path("/test_dir/", "windows_test.db") assert db_path == "\\test_dir\\windows_test.db"
def test_format_db_path_linux_absolute(): db_path = format_config_path("/test_dir/", "test.db") assert db_path == "/test_dir/test.db"
def _get_file_handler(log_name, log_level): file_handler = logging.FileHandler( filename=format_config_path(_LOG_DIR, log_name)) file_handler.setFormatter(_FORMATTER) file_handler.setLevel(log_level) return file_handler
def _get_default_warn_log(): koala_log = logging.FileHandler( filename=format_config_path(_LOG_DIR, "KoalaBotWarn.log")) koala_log.setFormatter(_FORMATTER) koala_log.setLevel(logging.WARN) return koala_log
import sys import logging from datetime import date from pathlib import Path from koala.utils import format_config_path from koala.env import CONFIG_PATH, LOGGING_FILE # load_dotenv() _LOG_LEVEL = logging.DEBUG _FORMATTER = logging.Formatter("%(asctime)s %(levelname)-8s %(message)s") _LOG_DIR = format_config_path(CONFIG_PATH, "logs", str(date.today())) Path(_LOG_DIR).mkdir(exist_ok=True, parents=True) # logging.basicConfig(filename=format_config_path(_LOG_DIR, 'KoalaBot.log'), # level=logging.WARN, # format='%(asctime)s %(levelname)-8s %(message)s') def _get_default_warn_log(): koala_log = logging.FileHandler( filename=format_config_path(_LOG_DIR, "KoalaBotWarn.log")) koala_log.setFormatter(_FORMATTER) koala_log.setLevel(logging.WARN) return koala_log def _get_file_handler(log_name, log_level): file_handler = logging.FileHandler(