changeset a9e4e5a328c1 in trytond:5.0
details: https://hg.tryton.org/trytond?cmd=changeset&node=a9e4e5a328c1
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 2131637cf29e -r a9e4e5a328c1 trytond/pyson.py
--- a/trytond/pyson.py Wed Mar 02 00:49:23 2022 +0100
+++ b/trytond/pyson.py Sun Mar 06 18:02:00 2022 +0100
@@ -489,7 +489,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 2131637cf29e -r a9e4e5a328c1 trytond/tests/test_pyson.py
--- a/trytond/tests/test_pyson.py Wed Mar 02 00:49:23 2022 +0100
+++ b/trytond/tests/test_pyson.py Sun Mar 06 18:02:00 2022 +0100
@@ -396,6 +396,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'])")