From f133f0c8096e6590a3cccdd58b4f78800b7f17b9 Mon Sep 17 00:00:00 2001 From: Jimmy Petersson <jimmy.petersson@gmail.com> Date: Fri, 13 Jan 2017 17:30:17 +0100 Subject: [PATCH] Use strtobool to parse boolean env variables --- klaus/contrib/app_args.py | 11 +++++++---- tests/test_contrib.py | 18 ++++++++++++++---- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/klaus/contrib/app_args.py b/klaus/contrib/app_args.py index c428976..dc9a913 100644 --- a/klaus/contrib/app_args.py +++ b/klaus/contrib/app_args.py @@ -1,4 +1,5 @@ import os +from distutils.util import strtobool def get_args_from_env(): @@ -11,10 +12,12 @@ def get_args_from_env(): ) kwargs = dict( htdigest_file=os.environ.get('KLAUS_HTDIGEST_FILE'), - use_smarthttp=bool(os.environ.get('KLAUS_USE_SMARTHTTP')), - require_browser_auth=bool(os.environ.get('KLAUS_REQUIRE_BROWSER_AUTH')), - disable_push=bool(os.environ.get('KLAUS_DISABLE_PUSH')), - unauthenticated_push=bool(os.environ.get('KLAUS_UNAUTHENTICATED_PUSH')), + use_smarthttp=strtobool(os.environ.get('KLAUS_USE_SMARTHTTP', '0')), + require_browser_auth=strtobool( + os.environ.get('KLAUS_REQUIRE_BROWSER_AUTH', '0')), + disable_push=strtobool(os.environ.get('KLAUS_DISABLE_PUSH', '0')), + unauthenticated_push=strtobool( + os.environ.get('KLAUS_UNAUTHENTICATED_PUSH', '0')), ctags_policy=os.environ.get('KLAUS_CTAGS_POLICY', 'none') ) return args, kwargs diff --git a/tests/test_contrib.py b/tests/test_contrib.py index 35b6cb1..9f2a558 100644 --- a/tests/test_contrib.py +++ b/tests/test_contrib.py @@ -49,8 +49,8 @@ def test_app_args_from_env(): 'KLAUS_HTDIGEST_FILE': HTDIGEST_FILE, 'KLAUS_USE_SMARTHTTP': 'yes', 'KLAUS_REQUIRE_BROWSER_AUTH': '1', - 'KLAUS_DISABLE_PUSH': 'false', # TODO? - 'KLAUS_UNAUTHENTICATED_PUSH': '0', # TODO? + 'KLAUS_DISABLE_PUSH': 'false', + 'KLAUS_UNAUTHENTICATED_PUSH': '0', 'KLAUS_CTAGS_POLICY': 'ALL' }, ([TEST_REPO], TEST_SITE_NAME), @@ -58,11 +58,21 @@ def test_app_args_from_env(): htdigest_file=HTDIGEST_FILE, use_smarthttp=True, require_browser_auth=True, - disable_push=True, - unauthenticated_push=True, + disable_push=False, + unauthenticated_push=False, ctags_policy='ALL') ) + with pytest.raises(ValueError): + check_env( + { + 'KLAUS_REPOS': TEST_REPO, + 'KLAUS_SITE_NAME': TEST_SITE_NAME, + 'KLAUS_HTDIGEST_FILE': HTDIGEST_FILE, + 'KLAUS_USE_SMARTHTTP': 'unsupported', + }, (), {} + ) + def test_wsgi(): clear_env() -- GitLab