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'])")