diff options
author | Jimmy Petersson <jimmy.petersson@gmail.com> | 2017-01-13 17:30:17 +0100 |
---|---|---|
committer | Jimmy Petersson <jimmy.petersson@gmail.com> | 2017-01-13 17:30:17 +0100 |
commit | f133f0c8096e6590a3cccdd58b4f78800b7f17b9 (patch) | |
tree | da8ab5567059e86121955e210e1bc813e8f55e72 | |
parent | cac1760571434c4596c336cac8970f8f32a55822 (diff) |
Use strtobool to parse boolean env variables
-rw-r--r-- | klaus/contrib/app_args.py | 11 | ||||
-rw-r--r-- | 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() |