From 707599dd86b93c9fd23f3889af769be0b1d1ed3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Wed, 25 Apr 2018 21:26:02 +0200 Subject: [PATCH] Dont determine paths at module import time --- gajim/common/logger.py | 35 +++++++++++++++++------------------ gajim/history_manager.py | 10 +++++----- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/gajim/common/logger.py b/gajim/common/logger.py index 8d13eaff9..ec9027412 100644 --- a/gajim/common/logger.py +++ b/gajim/common/logger.py @@ -49,9 +49,6 @@ from gajim.common.const import ( JIDConstant, KindConstant, ShowConstant, TypeConstant, SubscriptionConstant) -LOG_DB_PATH = configpaths.get('LOG_DB') -LOG_DB_FOLDER, LOG_DB_FILE = os.path.split(LOG_DB_PATH) -CACHE_DB_PATH = configpaths.get('CACHE_DB') LOGS_SQL_STATEMENT = ''' CREATE TABLE jids( @@ -132,6 +129,8 @@ class Logger: self._jid_ids = {} self._con = None self._commit_timout_id = None + self._log_db_path = configpaths.get('LOG_DB') + self._cache_db_path = configpaths.get('CACHE_DB') self._create_databases() self._migrate_databases() @@ -139,23 +138,23 @@ class Logger: self._get_jid_ids_from_db() def _create_databases(self): - if os.path.isdir(LOG_DB_PATH): + if os.path.isdir(self._log_db_path): log.error(_('%s is a directory but should be a file'), - LOG_DB_PATH) + self._log_db_path) sys.exit() - if os.path.isdir(CACHE_DB_PATH): + if os.path.isdir(self._cache_db_path): log.error(_('%s is a directory but should be a file'), - CACHE_DB_PATH) + self._cache_db_path) sys.exit() - if not os.path.exists(LOG_DB_PATH): - if os.path.exists(CACHE_DB_PATH): - os.remove(CACHE_DB_PATH) - self._create(LOGS_SQL_STATEMENT, LOG_DB_PATH) + if not os.path.exists(self._log_db_path): + if os.path.exists(self._cache_db_path): + os.remove(self._cache_db_path) + self._create(LOGS_SQL_STATEMENT, self._log_db_path) - if not os.path.exists(CACHE_DB_PATH): - self._create(CACHE_SQL_STATEMENT, CACHE_DB_PATH) + if not os.path.exists(self._cache_db_path): + self._create(CACHE_SQL_STATEMENT, self._cache_db_path) @staticmethod def _create(statement, path): @@ -181,11 +180,11 @@ class Logger: def _migrate_databases(self): try: - con = sqlite.connect(LOG_DB_PATH) + con = sqlite.connect(self._log_db_path) self._migrate_logs(con) con.close() - con = sqlite.connect(CACHE_DB_PATH) + con = sqlite.connect(self._cache_db_path) self._migrate_cache(con) con.close() except Exception: @@ -267,7 +266,7 @@ class Logger: def _connect_databases(self): self._con = sqlite.connect( - LOG_DB_PATH, timeout=20.0, isolation_level='IMMEDIATE') + self._log_db_path, timeout=20.0, isolation_level='IMMEDIATE') self._con.row_factory = self.namedtuple_factory @@ -278,7 +277,7 @@ class Logger: self._set_synchronous(False) try: self._con.execute("ATTACH DATABASE '%s' AS cache" % - CACHE_DB_PATH.replace("'", "''")) + self._cache_db_path.replace("'", "''")) except Exception as error: log.exception('Error') self._con.close() @@ -680,7 +679,7 @@ class Logger: sql, tuple(jids) + (restore, pending)).fetchall() except sqlite.DatabaseError: self.dispatch('DB_ERROR', - exceptions.DatabaseMalformed(LOG_DB_PATH)) + exceptions.DatabaseMalformed(self._log_db_path)) return [] messages.reverse() diff --git a/gajim/history_manager.py b/gajim/history_manager.py index 946a69393..bb15aafb2 100644 --- a/gajim/history_manager.py +++ b/gajim/history_manager.py @@ -84,7 +84,6 @@ if is_standalone(): from gajim.common import app from gajim import gtkgui_helpers -from gajim.common.logger import LOG_DB_PATH from gajim.common.const import JIDConstant, KindConstant from gajim.common import helpers from gajim import dialogs @@ -109,9 +108,10 @@ class HistoryManager: # set the icon to all windows Gtk.Window.set_default_icon_list(pixs) - if not os.path.exists(LOG_DB_PATH): + log_db_path = configpaths.get('LOG_DB') + if not os.path.exists(log_db_path): dialogs.ErrorDialog(_('Cannot find history logs database'), - '%s does not exist.' % LOG_DB_PATH) + '%s does not exist.' % log_db_path) sys.exit() xml = gtkgui_helpers.get_gtk_builder('history_manager.ui') @@ -128,8 +128,8 @@ class HistoryManager: self.jids_already_in = [] # holds jids that we already have in DB self.AT_LEAST_ONE_DELETION_DONE = False - self.con = sqlite3.connect(LOG_DB_PATH, timeout=20.0, - isolation_level='IMMEDIATE') + self.con = sqlite3.connect( + log_db_path, timeout=20.0, isolation_level='IMMEDIATE') self.cur = self.con.cursor() self._init_jids_listview()