From 4b28836b73721f7c4217ebac34e23bdb13c7a537 Mon Sep 17 00:00:00 2001 From: Rick Nitsche Date: Tue, 27 Oct 2020 12:22:17 -0700 Subject: [PATCH] feat(script): add option --chimedb-enable-test --- bondia/auth.py | 2 -- bondia/server.py | 8 ++------ scripts/bondia-server | 23 ++++++++++++++++++++++- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/bondia/auth.py b/bondia/auth.py index 6748f61..aa6ceda 100644 --- a/bondia/auth.py +++ b/bondia/auth.py @@ -1,4 +1,3 @@ -from chimedb.core import connect as connect_chimedb from chimedb.core.mediawiki import MediaWikiUser import os @@ -37,7 +36,6 @@ def post(self): self.redirect(os.getenv("BONDIA_ROOT_URL", "") + "/login" + error_msg) return - connect_chimedb() try: MediaWikiUser.authenticate(username, password) except UserWarning as err: diff --git a/bondia/server.py b/bondia/server.py index a21d285..816add1 100644 --- a/bondia/server.py +++ b/bondia/server.py @@ -5,16 +5,12 @@ import logging import panel as pn -from chimedb.core import connect as chimedbconnect - from .data import DataLoader from .util.exception import ConfigError from .gui import BondiaGui logger = logging.getLogger(__name__) - -# Open DB connection -chimedbconnect(reconnect=True) +logging.basicConfig(level=logging.DEBUG) class BondiaServer(Reader): @@ -54,7 +50,7 @@ def _finalise_config(self): raise ConfigError("No data available.") def gui_instance(self): - # logger.debug(f"Starting user session {pn.state.curdoc.session_context.id}.") + logger.debug("Starting user session.") instance = BondiaGui( self._template, self._width_drawer_widgets, diff --git a/scripts/bondia-server b/scripts/bondia-server index 2c92504..8c8181b 100755 --- a/scripts/bondia-server +++ b/scripts/bondia-server @@ -8,6 +8,8 @@ import pathlib import secrets import yaml +from chimedb.core import test_enable as chimedb_test_enable, connect as chimedb_connect + from bondia.server import BondiaServer from bondia import auth, __version__ @@ -50,7 +52,22 @@ logger = logging.getLogger("bondia-server") default=True, show_default=True, ) -def start(configfile, show, port, num_procs, websocket_origin, login, print_config): +@click.option( + "--chimedb-enable-test/--co-chimedb-enable-test", + help="Use chimedb in test mode (make sure to not use production DB settings).", + default=False, + show_default=True, +) +def start( + configfile, + show, + port, + num_procs, + websocket_origin, + login, + print_config, + chimedb_enable_test, +): logging.basicConfig(level=logging.INFO) @@ -60,6 +77,10 @@ def start(configfile, show, port, num_procs, websocket_origin, login, print_conf if print_config: logger.info(f"Loaded config: {config}") + if chimedb_enable_test: + chimedb_test_enable() + chimedb_connect(reconnect=True) + if isinstance(websocket_origin, str): websocket_origin = [websocket_origin]