# Copyright 2016 ABF OSIELL # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). import time from odoo.tests.common import TransactionCase class TestAuditlogAutovacuum(TransactionCase): def setUp(self): super(TestAuditlogAutovacuum, self).setUp() self.groups_model_id = self.env.ref('base.model_res_groups').id self.groups_rule = self.env['auditlog.rule'].create({ 'name': 'testrule for groups', 'model_id': self.groups_model_id, 'log_read': True, 'log_create': True, 'log_write': True, 'log_unlink': True, 'state': 'subscribed', 'log_type': 'full', }) def tearDown(self): self.groups_rule.unlink() super(TestAuditlogAutovacuum, self).tearDown() def test_autovacuum(self): log_model = self.env['auditlog.log'] autovacuum_model = self.env['auditlog.autovacuum'] group = self.env['res.groups'].create({ 'name': 'testgroup1', }) nb_logs = log_model.search_count([ ('model_id', '=', self.groups_model_id), ('res_id', '=', group.id), ]) self.assertGreater(nb_logs, 0) # Milliseconds are ignored by autovacuum, waiting 1s ensure that # the logs generated will be processed by the vacuum time.sleep(1) autovacuum_model.autovacuum(days=0) nb_logs = log_model.search_count([ ('model_id', '=', self.groups_model_id), ('res_id', '=', group.id), ]) self.assertEqual(nb_logs, 0)