[FIX] test_performance: adapt query count of one2many operations

Since https://github.com/odoo/odoo/pull/99415,
query count for one2many operation was too high, fix it.

closes odoo/odoo#103807

X-original-commit: 09acbbe9ca7cc524288589cb2f9dfcd30b244461
Signed-off-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
Signed-off-by: Rémy Voet <ryv@odoo.com>
This commit is contained in:
Rémy Voet (ryv)
2022-10-24 08:22:45 +02:00
parent 6617defe53
commit 370cae07b8
@@ -135,7 +135,7 @@ class TestPerformance(SavepointCaseWithUserDemo):
rec1.write({'line_ids': [Command.create({'value': 0})]})
self.assertEqual(len(rec1.line_ids), 1)
with self.assertQueryCount(5):
with self.assertQueryCount(4):
self.env.invalidate_all()
rec1.write({'line_ids': [Command.create({'value': val}) for val in range(1, 12)]})
self.assertEqual(len(rec1.line_ids), 12)
@@ -143,23 +143,23 @@ class TestPerformance(SavepointCaseWithUserDemo):
lines = rec1.line_ids
# update N lines: O(N) queries
with self.assertQueryCount(6):
with self.assertQueryCount(5):
self.env.invalidate_all()
rec1.write({'line_ids': [Command.update(line.id, {'value': 42}) for line in lines[0]]})
self.assertEqual(rec1.line_ids, lines)
with self.assertQueryCount(26):
with self.assertQueryCount(25):
self.env.invalidate_all()
rec1.write({'line_ids': [Command.update(line.id, {'value': 42 + line.id}) for line in lines[1:]]})
self.assertEqual(rec1.line_ids, lines)
# delete N lines: O(1) queries
with self.assertQueryCount(14):
with self.assertQueryCount(12):
self.env.invalidate_all()
rec1.write({'line_ids': [Command.delete(line.id) for line in lines[0]]})
self.assertEqual(rec1.line_ids, lines[1:])
with self.assertQueryCount(12):
with self.assertQueryCount(11):
self.env.invalidate_all()
rec1.write({'line_ids': [Command.delete(line.id) for line in lines[1:]]})
self.assertFalse(rec1.line_ids)
@@ -169,12 +169,12 @@ class TestPerformance(SavepointCaseWithUserDemo):
lines = rec1.line_ids
# unlink N lines: O(1) queries
with self.assertQueryCount(14):
with self.assertQueryCount(12):
self.env.invalidate_all()
rec1.write({'line_ids': [Command.unlink(line.id) for line in lines[0]]})
self.assertEqual(rec1.line_ids, lines[1:])
with self.assertQueryCount(12):
with self.assertQueryCount(11):
self.env.invalidate_all()
rec1.write({'line_ids': [Command.unlink(line.id) for line in lines[1:]]})
self.assertFalse(rec1.line_ids)
@@ -185,30 +185,30 @@ class TestPerformance(SavepointCaseWithUserDemo):
rec2 = self.env['test_performance.base'].create({'name': 'X'})
# link N lines from rec1 to rec2: O(1) queries
with self.assertQueryCount(8):
with self.assertQueryCount(7):
self.env.invalidate_all()
rec2.write({'line_ids': [Command.link(line.id) for line in lines[0]]})
self.assertEqual(rec1.line_ids, lines[1:])
self.assertEqual(rec2.line_ids, lines[0])
with self.assertQueryCount(8):
with self.assertQueryCount(7):
self.env.invalidate_all()
rec2.write({'line_ids': [Command.link(line.id) for line in lines[1:]]})
self.assertFalse(rec1.line_ids)
self.assertEqual(rec2.line_ids, lines)
with self.assertQueryCount(4):
with self.assertQueryCount(3):
self.env.invalidate_all()
rec2.write({'line_ids': [Command.link(line.id) for line in lines[0]]})
self.assertEqual(rec2.line_ids, lines)
with self.assertQueryCount(4):
with self.assertQueryCount(3):
self.env.invalidate_all()
rec2.write({'line_ids': [Command.link(line.id) for line in lines[1:]]})
self.assertEqual(rec2.line_ids, lines)
# empty N lines in rec2: O(1) queries
with self.assertQueryCount(13):
with self.assertQueryCount(12):
self.env.invalidate_all()
rec2.write({'line_ids': [Command.clear()]})
self.assertFalse(rec2.line_ids)