diff --git a/odoo/addons/base/tests/test_expression.py b/odoo/addons/base/tests/test_expression.py index 505194ff64f..2c10677ef2e 100644 --- a/odoo/addons/base/tests/test_expression.py +++ b/odoo/addons/base/tests/test_expression.py @@ -704,6 +704,10 @@ class TestExpression(SavepointCaseWithUserDemo): countries = self._search(Country, domain) self.assertEqual(countries, belgium) + countries = self._search(Country, [('name', 'not in', ['No country'])]) + all_countries = self._search(Country, []) + self.assertEqual(countries, all_countries) + @mute_logger('odoo.sql_db') def test_invalid(self): """ verify that invalid expressions are refused, even for magic fields """ diff --git a/odoo/osv/expression.py b/odoo/osv/expression.py index ce819013d02..a6ee9cf059e 100644 --- a/odoo/osv/expression.py +++ b/odoo/osv/expression.py @@ -909,7 +909,7 @@ class expression(object): sql_operator = {'=like': 'like', '=ilike': 'ilike'}.get(operator, operator) if need_wildcard: right = '%%%s%%' % right - if sql_operator == 'in': + if sql_operator in ('in', 'not in'): right = tuple(right) unaccent = self._unaccent if sql_operator.endswith('like') else lambda x: x