From ac4aadc2dfdb2fab87c11b6b1abf725390426da0 Mon Sep 17 00:00:00 2001 From: "Maxime Alves LIRMM@home" Date: Mon, 29 Nov 2021 06:21:19 +0100 Subject: [PATCH] [conf][testfail] add SCHEMA dictionary to globals --- halfapi/app.py | 13 ++++++------- halfapi/cli/run.py | 4 ++-- halfapi/conf.py | 1 + tests/test_conf.py | 33 ++++++++++++++++++++++++++++----- 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/halfapi/app.py b/halfapi/app.py index 2ee1c3d..beb336c 100644 --- a/halfapi/app.py +++ b/halfapi/app.py @@ -1,9 +1,8 @@ from .halfapi import HalfAPI -from .conf import PRODUCTION, SECRET, DOMAINS, CONFIG +from .conf import CONFIG, SCHEMA +from .logging import logger -application = HalfAPI({ - 'PRODUCTION': PRODUCTION, - 'SECRET': SECRET, - 'DOMAINS': DOMAINS, - 'CONFIG': CONFIG, -}).application +logger.info('CONFIG: %s', CONFIG) +logger.info('SCHEMA: %s', SCHEMA) + +application = HalfAPI(CONFIG, SCHEMA or None).application diff --git a/halfapi/cli/run.py b/halfapi/cli/run.py index f699f25..f1e6e5c 100644 --- a/halfapi/cli/run.py +++ b/halfapi/cli/run.py @@ -9,8 +9,8 @@ import uvicorn from .cli import cli from .domain import list_api_routes -from ..conf import (PROJECT_NAME, HOST, PORT, - PRODUCTION, LOGLEVEL, DOMAINSDICT) +from ..conf import (PROJECT_NAME, HOST, PORT, SCHEMA, + PRODUCTION, LOGLEVEL, DOMAINSDICT, CONFIG) from ..logging import logger @click.option('--host', default=HOST) diff --git a/halfapi/conf.py b/halfapi/conf.py index 58f754b..1cee05d 100644 --- a/halfapi/conf.py +++ b/halfapi/conf.py @@ -53,6 +53,7 @@ HOST = '127.0.0.1' PORT = '3000' SECRET = '' CONF_FILE = os.environ.get('HALFAPI_CONF_FILE', '.halfapi/config') +SCHEMA = {} config = ConfigParser(allow_no_value=True) diff --git a/tests/test_conf.py b/tests/test_conf.py index befcc12..355cd92 100644 --- a/tests/test_conf.py +++ b/tests/test_conf.py @@ -2,21 +2,44 @@ from halfapi.halfapi import HalfAPI def test_conf_production_default(): halfapi = HalfAPI({ - 'DOMAINS': {'test': True} + 'domains': {'test': True} }) assert halfapi.PRODUCTION is True def test_conf_production_true(): halfapi = HalfAPI({ - 'PRODUCTION': True, - 'DOMAINS': {'test': True} + 'production': True, + 'domains': {'test': True} }) assert halfapi.PRODUCTION is True def test_conf_production_false(): halfapi = HalfAPI({ - 'PRODUCTION': False, - 'DOMAINS': {'test': True} + 'production': False, + 'domains': {'test': True} }) assert halfapi.PRODUCTION is False +def test_conf_variables(): + from halfapi.conf import ( + CONFIG, + SCHEMA, + SECRET, + DOMAINSDICT, + PROJECT_NAME, + HOST, + PORT, + CONF_DIR + ) + + assert isinstance(CONFIG, dict) + assert isinstance(SCHEMA, dict) + assert isinstance(SECRET, str) + assert isinstance(DOMAINSDICT(), dict) + assert isinstance(PROJECT_NAME, str) + assert isinstance(HOST, str) + assert isinstance(PORT, str) + assert str(int(PORT)) == PORT + PORT = 'abc' + assert str(int(PORT)) == PORT + assert isinstance(CONF_DIR, str)