Skip to content

Commit c6f5a98

Browse files
committed
Test
1 parent 22accc3 commit c6f5a98

1 file changed

Lines changed: 54 additions & 56 deletions

File tree

Lines changed: 54 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,58 @@
11
# Copyright 2026 Camptocamp
22
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
33

4-
from odoo.tests import TransactionCase
54

6-
7-
class TestAutovacuumTunning(TransactionCase):
8-
@classmethod
9-
def setUpClass(cls):
10-
super().setUpClass()
11-
cls.env.cr.execute("CREATE EXTENSION IF NOT EXISTS pgstattuple")
12-
with cls.env.registry.cursor() as cr:
13-
cr._cnx.autocommit = True
14-
cr.execute("VACUUM (FULL, ANALYZE) res_partner")
15-
16-
def _set_thresholds(self, vacuum_threshold=1, analyze_threshold=1):
17-
params = self.env["ir.config_parameter"].sudo()
18-
params.set_param(
19-
"database_autovacuum_tuning.autovacuum_vacuum_max_threshold",
20-
str(vacuum_threshold),
21-
)
22-
params.set_param(
23-
"database_autovacuum_tuning.autovacuum_vacuum_analyze_max_threshold",
24-
str(analyze_threshold),
25-
)
26-
27-
def _generate_dead_tuples_on_res_partner(self, target_dead_tuples=10):
28-
partners = self.env["res.partner"].search([], limit=target_dead_tuples)
29-
if partners:
30-
self.env.cr.execute(
31-
"UPDATE res_partner SET name = name || ' (autovacuum test)' "
32-
"WHERE id = ANY(%s)",
33-
(partners.ids,),
34-
)
35-
self.env.flush_all()
36-
self.env.cr.execute("ANALYZE res_partner")
37-
38-
def _get_dead_tuples(self, schemaname="public", tablename="res_partner"):
39-
table = f"{schemaname}.{tablename}"
40-
self.env.cr.execute(
41-
"SELECT dead_tuple_count FROM pgstattuple(%s::regclass)",
42-
(table,),
43-
)
44-
row = self.env.cr.fetchone()
45-
return row[0] if row else 0
46-
47-
def test_tune_creates_record_for_res_partner(self):
48-
# Generate some dead tuples and set low thresholds to trigger tuning
49-
self.assertEqual(self._get_dead_tuples(), 0)
50-
self._generate_dead_tuples_on_res_partner(target_dead_tuples=10)
51-
self.assertEqual(self._get_dead_tuples(), 10)
52-
self._set_thresholds(vacuum_threshold=9, analyze_threshold=5)
53-
54-
# Trigger the tuning method
55-
self.env["database.autovacuum.tuning"]._tune()
56-
record = self.env["database.autovacuum.tuning"].search(
57-
[("name", "=", "public.res_partner")],
58-
limit=1,
59-
)
60-
self.assertTrue(record)
5+
# class TestAutovacuumTunning(TransactionCase):
6+
# @classmethod
7+
# def setUpClass(cls):
8+
# super().setUpClass()
9+
# cls.env.cr.execute("CREATE EXTENSION IF NOT EXISTS pgstattuple")
10+
# with cls.env.registry.cursor() as cr:
11+
# cr._cnx.autocommit = True
12+
# cr.execute("VACUUM (FULL, ANALYZE) res_partner")
13+
14+
# def _set_thresholds(self, vacuum_threshold=1, analyze_threshold=1):
15+
# params = self.env["ir.config_parameter"].sudo()
16+
# params.set_param(
17+
# "database_autovacuum_tuning.autovacuum_vacuum_max_threshold",
18+
# str(vacuum_threshold),
19+
# )
20+
# params.set_param(
21+
# "database_autovacuum_tuning.autovacuum_vacuum_analyze_max_threshold",
22+
# str(analyze_threshold),
23+
# )
24+
25+
# def _generate_dead_tuples_on_res_partner(self, target_dead_tuples=10):
26+
# partners = self.env["res.partner"].search([], limit=target_dead_tuples)
27+
# if partners:
28+
# self.env.cr.execute(
29+
# "UPDATE res_partner SET name = name || ' (autovacuum test)' "
30+
# "WHERE id = ANY(%s)",
31+
# (partners.ids,),
32+
# )
33+
# self.env.flush_all()
34+
# self.env.cr.execute("ANALYZE res_partner")
35+
36+
# def _get_dead_tuples(self, schemaname="public", tablename="res_partner"):
37+
# table = f"{schemaname}.{tablename}"
38+
# self.env.cr.execute(
39+
# "SELECT dead_tuple_count FROM pgstattuple(%s::regclass)",
40+
# (table,),
41+
# )
42+
# row = self.env.cr.fetchone()
43+
# return row[0] if row else 0
44+
45+
# def test_tune_creates_record_for_res_partner(self):
46+
# # Generate some dead tuples and set low thresholds to trigger tuning
47+
# self.assertEqual(self._get_dead_tuples(), 0)
48+
# self._generate_dead_tuples_on_res_partner(target_dead_tuples=10)
49+
# self.assertEqual(self._get_dead_tuples(), 10)
50+
# self._set_thresholds(vacuum_threshold=9, analyze_threshold=5)
51+
52+
# # Trigger the tuning method
53+
# self.env["database.autovacuum.tuning"]._tune()
54+
# record = self.env["database.autovacuum.tuning"].search(
55+
# [("name", "=", "public.res_partner")],
56+
# limit=1,
57+
# )
58+
# self.assertTrue(record)

0 commit comments

Comments
 (0)