summaryrefslogtreecommitdiff
path: root/odoo/addons
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2021-01-19 17:14:08 +0000
committerRaphael Collet <rco@odoo.com>2021-01-20 09:03:18 +0000
commita4d7e01e2a27e90060ffd19dffbad3cead5d608b (patch)
tree62c23e8a73db2251d9739b95c6f660c12801dc5d /odoo/addons
parent3655efc990d4792453304938d555122f4f5d3c88 (diff)
[FIX] core: exists() with string ids
The call model.browse('xxx').exists() should not return the record. Instead, it should fail as the string 'xxx' is not a valid ID. closes odoo/odoo#64779 X-original-commit: 824a6515a528cd2b682c3d3504c0d27ed9427cdb Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Diffstat (limited to 'odoo/addons')
-rw-r--r--odoo/addons/base/tests/test_orm.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/odoo/addons/base/tests/test_orm.py b/odoo/addons/base/tests/test_orm.py
index 285e4b67290..4ccfa6a0dd3 100644
--- a/odoo/addons/base/tests/test_orm.py
+++ b/odoo/addons/base/tests/test_orm.py
@@ -3,6 +3,8 @@
from collections import defaultdict
+import psycopg2
+
from odoo.exceptions import AccessError, MissingError
from odoo.tests.common import TransactionCase
from odoo.tools import mute_logger
@@ -136,6 +138,7 @@ class TestORM(TransactionCase):
self.assertEqual(len(found), 1)
self.assertTrue(field in list(found[0]) for field in ['id', 'name', 'display_name', 'email'])
+ @mute_logger('odoo.sql_db')
def test_exists(self):
partner = self.env['res.partner']
@@ -144,10 +147,19 @@ class TestORM(TransactionCase):
self.assertTrue(recs)
self.assertEqual(recs.exists(), recs)
+ # check that new records exist by convention
+ recs = partner.new({})
+ self.assertTrue(recs.exists())
+
# check that there is no record with id 0
recs = partner.browse([0])
self.assertFalse(recs.exists())
+ # check that there is no record with string id
+ recs = partner.browse('xxx')
+ with self.assertRaises(psycopg2.DataError):
+ recs.exists()
+
def test_groupby_date(self):
partners_data = dict(
A='2012-11-19',