summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Conrad <alexandre.conrad@gmail.com>2011-12-03 18:40:08 -0800
committerAlexandre Conrad <alexandre.conrad@gmail.com>2011-12-03 18:40:08 -0800
commit0b0e70213371d8042a2d52f5523429e7e99935d6 (patch)
tree60049188ef61f37698a57e56400fad9fd63b83ee
parent8aa175c06905ef9d17430e760cfe7e33598f8493 (diff)
downloadpastedeploy-0b0e70213371d8042a2d52f5523429e7e99935d6.tar.gz
use frozenset for asbool() lookup
-rw-r--r--paste/deploy/converters.py8
-rw-r--r--tests/test_converters.py17
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')