found = self.partner.search_read(self.cr, UID, [['name', '=', 'Does not exists']], ['name'])
self.assertEqual(len(found), 0)
+ def test_exists(self):
+ partner = self.partner.browse(self.cr, UID, [])
+
+ # check that records obtained from search exist
+ recs = partner.search([])
+ self.assertTrue(recs)
+ self.assertEqual(recs.exists(), recs)
+
+ # check that there is no record with id 0
+ recs = partner.browse([0])
+ self.assertFalse(recs.exists())
+
def test_groupby_date(self):
partners = dict(
A='2012-11-19',
By convention, new records are returned as existing.
"""
- ids = filter(None, self._ids) # ids to check in database
+ ids, new_ids = [], []
+ for i in self._ids:
+ (ids if isinstance(i, (int, long)) else new_ids).append(i)
if not ids:
return self
query = """SELECT id FROM "%s" WHERE id IN %%s""" % self._table
- self._cr.execute(query, (ids,))
- ids = ([r[0] for r in self._cr.fetchall()] + # ids in database
- [id for id in self._ids if not id]) # new ids
- existing = self.browse(ids)
+ self._cr.execute(query, [tuple(ids)])
+ ids = [r[0] for r in self._cr.fetchall()]
+ existing = self.browse(ids + new_ids)
if len(existing) < len(self):
# mark missing records in cache with a failed value
exc = MissingError(_("Record does not exist or has been deleted."))