Use mapping protocol access instead of legacy configparser API

This commit is contained in:
flan 2017-11-06 19:33:27 +01:00
parent 354354ca72
commit 59f28faa1e
3 changed files with 16 additions and 17 deletions

View File

@ -330,21 +330,21 @@ class SyncApp:
def __init__(self, config): def __init__(self, config):
from ankisyncd.thread import getCollectionManager from ankisyncd.thread import getCollectionManager
self.data_root = os.path.abspath(config.get("sync_app", "data_root")) self.data_root = os.path.abspath(config['data_root'])
self.base_url = config.get("sync_app", "base_url") self.base_url = config['base_url']
self.base_media_url = config.get("sync_app", "base_media_url") self.base_media_url = config['base_media_url']
self.setup_new_collection = None self.setup_new_collection = None
self.prehooks = {} self.prehooks = {}
self.posthooks = {} self.posthooks = {}
if config.has_option("sync_app", "session_db_path"): if "session_db_path" in config:
self.session_manager = SqliteSessionManager(config.get("sync_app", "session_db_path")) self.session_manager = SqliteSessionManager(config['session_db_path'])
else: else:
self.session_manager = SimpleSessionManager() self.session_manager = SimpleSessionManager()
if config.has_option("sync_app", "auth_db_path"): if "auth_db_path" in config:
self.user_manager = SqliteUserManager(config.get("sync_app", "auth_db_path")) self.user_manager = SqliteUserManager(config['auth_db_path'])
else: else:
logging.warn("auth_db_path not set, ankisyncd will accept any password") logging.warn("auth_db_path not set, ankisyncd will accept any password")
self.user_manager = SimpleUserManager() self.user_manager = SimpleUserManager()
@ -688,11 +688,12 @@ def main():
from ankisyncd.thread import shutdown from ankisyncd.thread import shutdown
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
config = ConfigParser() parser = ConfigParser()
config.read("ankisyncd.conf") parser.read("ankisyncd.conf")
config = parser['sync_app']
ankiserver = SyncApp(config) ankiserver = SyncApp(config)
httpd = make_server(config.get("sync_app", "host"), config.getint("sync_app", "port"), ankiserver) httpd = make_server(config['host'], int(config['port']), ankiserver)
try: try:
print("Serving HTTP on {} port {}...".format(*httpd.server_address)) print("Serving HTTP on {} port {}...".format(*httpd.server_address))

View File

@ -16,8 +16,8 @@ def create_server_paths():
os.mkdir(os.path.join(dir, "data")) os.mkdir(os.path.join(dir, "data"))
return { return {
"auth_db": os.path.join(dir, "auth.db"), "auth_db_path": os.path.join(dir, "auth.db"),
"session_db": os.path.join(dir, "session.db"), "session_db_path": os.path.join(dir, "session.db"),
"data_root": os.path.join(dir, "data"), "data_root": os.path.join(dir, "data"),
} }
@ -26,11 +26,9 @@ def create_sync_app(server_paths, config_path):
config.read(config_path) config.read(config_path)
# Use custom files and dirs in settings. # Use custom files and dirs in settings.
config.set("sync_app", "auth_db_path", server_paths["auth_db"]) config['sync_app'].update(server_paths)
config.set("sync_app", "session_db_path", server_paths["session_db"])
config.set("sync_app", "data_root", server_paths["data_root"])
return SyncApp(config) return SyncApp(config['sync_app'])
def get_session_for_hkey(server, hkey): def get_session_for_hkey(server, hkey):
return server.session_manager.load(hkey) return server.session_manager.load(hkey)

View File

@ -28,7 +28,7 @@ class SyncAppFunctionalTestBase(unittest.TestCase):
self.server_paths = helpers.server_utils.create_server_paths() self.server_paths = helpers.server_utils.create_server_paths()
# Add a test user to the temp auth db the server will use. # Add a test user to the temp auth db the server will use.
self.user_manager = SqliteUserManager(self.server_paths['auth_db'], self.user_manager = SqliteUserManager(self.server_paths['auth_db_path'],
self.server_paths['data_root']) self.server_paths['data_root'])
self.user_manager.add_user('testuser', 'testpassword') self.user_manager.add_user('testuser', 'testpassword')