diff --git a/klaus/contrib/app_args.py b/klaus/contrib/app_args.py index c428976b1d84f3ac603e222c3785664dca7b235d..dc9a91323dc20420b0b28036aff401689b144da7 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 35b6cb1f69a25b056474031de0655b2b42be1937..9f2a55872a8c86c584047e5bc87c9c3bc9d72c9a 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()