changeset ac3933f0029b in trytond:6.2
details: https://hg.tryton.org/trytond?cmd=changeset&node=ac3933f0029b
description:
        Manage None as value of PYSON In

        issue11280
        review393771002
        (grafted from 754d4193dcd9f999e9a3d302c935022e8b83ab7b)
diffstat:

 trytond/pyson.py            |  5 ++++-
 trytond/tests/test_pyson.py |  4 ++++
 2 files changed, 8 insertions(+), 1 deletions(-)

diffs (29 lines):

diff -r c67ba5197e4e -r ac3933f0029b trytond/pyson.py
--- a/trytond/pyson.py  Tue Mar 01 19:21:34 2022 +0100
+++ b/trytond/pyson.py  Sun Mar 06 18:02:00 2022 +0100
@@ -515,7 +515,10 @@
 
     @staticmethod
     def eval(dct, context):
-        return dct['k'] in dct['v']
+        if dct['v']:
+            return dct['k'] in dct['v']
+        else:
+            return False
 
 
 class Date(PYSON):
diff -r c67ba5197e4e -r ac3933f0029b trytond/tests/test_pyson.py
--- a/trytond/tests/test_pyson.py       Tue Mar 01 19:21:34 2022 +0100
+++ b/trytond/tests/test_pyson.py       Sun Mar 06 18:02:00 2022 +0100
@@ -496,6 +496,10 @@
         eval = pyson.PYSONEncoder().encode(pyson.In('test', []))
         self.assertFalse(pyson.PYSONDecoder().decode(eval))
 
+        eval = pyson.PYSONEncoder().encode(
+            pyson.In('test', pyson.Eval('foo', [])))
+        self.assertFalse(pyson.PYSONDecoder({'foo': None}).decode(eval))
+
         self.assertEqual(repr(pyson.In('foo', ['foo', 'bar'])),
             "In('foo', ['foo', 'bar'])")
 

Reply via email to