Skip to content

Instantly share code, notes, and snippets.

@dschep
Created February 6, 2016 18:31
Show Gist options
  • Save dschep/e7e3733ae409d4dbff7f to your computer and use it in GitHub Desktop.
Save dschep/e7e3733ae409d4dbff7f to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
from unittest import TestCase
def truthyish(value):
"""
same as standard python truthyness except that strings are different.
True, t, yes, y and 1 (case insensitive) are considered truthy.
"""
if isinstance(value, str):
return value.lower() in ('true', 't', 'yes', 'y', '1')
else:
return bool(value)
# python -m unittest truthyish
class TestTruthyish(TestCase):
def test_truthyish(self):
self.assertTrue(truthyish('t'))
self.assertTrue(truthyish('T'))
self.assertTrue(truthyish('true'))
self.assertTrue(truthyish('True'))
self.assertTrue(truthyish('TRUE'))
self.assertTrue(truthyish('1'))
self.assertTrue(truthyish('Y'))
self.assertTrue(truthyish('y'))
self.assertTrue(truthyish('yes'))
self.assertTrue(truthyish('YES'))
def test_falseyish(self):
self.assertFalse(truthyish('f'))
self.assertFalse(truthyish('F'))
self.assertFalse(truthyish('false'))
self.assertFalse(truthyish('False'))
self.assertFalse(truthyish('FALSE'))
self.assertFalse(truthyish('0'))
self.assertFalse(truthyish('N'))
self.assertFalse(truthyish('n'))
self.assertFalse(truthyish('no'))
self.assertFalse(truthyish('NO'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment