summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy Petersson <jimmy.petersson@gmail.com>2017-01-13 17:30:17 +0100
committerJimmy Petersson <jimmy.petersson@gmail.com>2017-01-13 17:30:17 +0100
commitf133f0c8096e6590a3cccdd58b4f78800b7f17b9 (patch)
treeda8ab5567059e86121955e210e1bc813e8f55e72
parentcac1760571434c4596c336cac8970f8f32a55822 (diff)
Use strtobool to parse boolean env variables
-rw-r--r--klaus/contrib/app_args.py11
-rw-r--r--tests/test_contrib.py18
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()