From b47858d7153a05f64da16c4425c38f481e510d12 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 19 Jun 2019 11:41:09 +0400 Subject: [PATCH] Boolean And should return first falsey value (#56) * add test for boolean And * Use empty string for boolean and test * Fix return value of boolean And --- simpleeval.py | 2 +- test_simpleeval.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/simpleeval.py b/simpleeval.py index 8724a99..e489835 100644 --- a/simpleeval.py +++ b/simpleeval.py @@ -367,7 +367,7 @@ def _eval_boolop(self, node): for value in node.values: vout = self._eval(value) if not vout: - return False + return vout return vout elif isinstance(node.op, ast.Or): for value in node.values: diff --git a/test_simpleeval.py b/test_simpleeval.py index 5f91ea2..5ce703e 100644 --- a/test_simpleeval.py +++ b/test_simpleeval.py @@ -46,6 +46,7 @@ def test_maths_with_ints(self): self.t("100 % 9", 1) def test_bools_and_or(self): + self.t('True and ""', "") self.t('True and False', False) self.t('True or False', True) self.t('False or False', False)