From 0b0e70213371d8042a2d52f5523429e7e99935d6 Mon Sep 17 00:00:00 2001 From: Alexandre Conrad Date: Sat, 3 Dec 2011 18:40:08 -0800 Subject: use frozenset for asbool() lookup --- paste/deploy/converters.py | 8 ++++++-- tests/test_converters.py | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 tests/test_converters.py 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') -- cgit v1.2.1