From 4a347a4f783d9cd0b5d3550b161208ccecc12f0a Mon Sep 17 00:00:00 2001 From: "tiago.bar" Date: Fri, 22 Sep 2017 13:04:47 -0300 Subject: [PATCH 1/2] Enhances/fixes validators/is_empty() for Python 3 compatibility, fix #1764 --- gluon/validators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gluon/validators.py b/gluon/validators.py index 1d9dddcf..21de1ce2 100644 --- a/gluon/validators.py +++ b/gluon/validators.py @@ -996,7 +996,7 @@ def is_empty(value, empty_regex=None): value = value.strip() if empty_regex is not None and empty_regex.match(value): value = '' - if value is None or value == '' or value == []: + if value is None or value == '' or value == b'' or value == []: return (_value, True) return (_value, False) From 511245a68c4abcce3c721bbd3d0d48d614f55f3b Mon Sep 17 00:00:00 2001 From: "tiago.bar" Date: Sat, 23 Sep 2017 20:21:14 -0300 Subject: [PATCH 2/2] Unit test for #1764 fix --- gluon/tests/test_validators.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gluon/tests/test_validators.py b/gluon/tests/test_validators.py index e534fbd8..36bf454e 100644 --- a/gluon/tests/test_validators.py +++ b/gluon/tests/test_validators.py @@ -444,6 +444,8 @@ class TestValidators(unittest.TestCase): self.assertEqual(rtn, (None, 'Enter a value')) rtn = IS_NOT_EMPTY()('') self.assertEqual(rtn, ('', 'Enter a value')) + rtn = IS_NOT_EMPTY()(b'') + self.assertEqual(rtn, (b'', 'Enter a value')) rtn = IS_NOT_EMPTY()(' ') self.assertEqual(rtn, (' ', 'Enter a value')) rtn = IS_NOT_EMPTY()(' \n\t')