From ccdf16cc319fdd1e26beb1f38da7822aeee17a6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 4 Mar 2018 00:52:32 +0100 Subject: [PATCH] Correctly evaluate domain between xxx2many and None The value of empty xxx2many is an empty list which must be comparable to None. issue7163 review43171002 --- tryton/common/domain_inversion.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tryton/common/domain_inversion.py b/tryton/common/domain_inversion.py index 7e85bcf6f1..e29ea17652 100644 --- a/tryton/common/domain_inversion.py +++ b/tryton/common/domain_inversion.py @@ -70,6 +70,8 @@ def eval_leaf(part, context, boolop=operator.and_): context_field = datetime.datetime.min else: context_field = datetime.date.min + if isinstance(context_field, (list, tuple)) and value is None: + value = type(context_field)() if (isinstance(context_field, basestring) and isinstance(value, (list, tuple))): try: @@ -584,6 +586,9 @@ def test_evaldomain(): assert eval_domain(domain, {'x': [1, 2]}) assert not eval_domain(domain, {'x': [2]}) + domain = [['x', '=', None]] + assert eval_domain(domain, {'x': []}) + def test_localize(): domain = [['x', '=', 5]]