diff options
-rw-r--r-- | paste/deploy/converters.py | 8 | ||||
-rw-r--r-- | tests/test_converters.py | 17 |
2 files changed, 23 insertions, 2 deletions
diff --git a/paste/deploy/converters.py b/paste/deploy/converters.py index f37d267..c9d87de 100644 --- a/paste/deploy/converters.py +++ b/paste/deploy/converters.py @@ -3,12 +3,16 @@ from paste.deploy.compat import basestring +truthy = frozenset(['true', 'yes', 'on', 'y', 't', '1']) +falsy = frozenset(['false', 'no', 'off', 'n', 'f', '0']) + + def asbool(obj): if isinstance(obj, basestring): obj = obj.strip().lower() - if obj in ['true', 'yes', 'on', 'y', 't', '1']: + if obj in truthy: return True - elif obj in ['false', 'no', 'off', 'n', 'f', '0']: + elif obj in falsy: return False else: raise ValueError("String is not true/false: %r" % obj) diff --git a/tests/test_converters.py b/tests/test_converters.py new file mode 100644 index 0000000..5361310 --- /dev/null +++ b/tests/test_converters.py @@ -0,0 +1,17 @@ +def test_asbool_truthy(): + from paste.deploy.converters import asbool + assert asbool('true') + assert asbool('yes') + assert asbool('on') + assert asbool('y') + assert asbool('t') + assert asbool('1') + +def test_asbool_falsy(): + from paste.deploy.converters import asbool + assert not asbool('false') + assert not asbool('no') + assert not asbool('off') + assert not asbool('n') + assert not asbool('f') + assert not asbool('0') |