Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[12.0][FIX] Autovacuum cron job #163

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion queue_job/__manifest__.py
Expand Up @@ -2,7 +2,7 @@


{'name': 'Job Queue',
'version': '12.0.1.0.0',
'version': '12.0.1.0.1',
'author': 'Camptocamp,ACSONE SA/NV,Odoo Community Association (OCA)',
'website': 'https://github.com/OCA/queue/queue_job',
'license': 'AGPL-3',
Expand Down
1 change: 1 addition & 0 deletions queue_job/data/queue_data.xml
Expand Up @@ -18,6 +18,7 @@
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
<field name="state">code</field>
<field name="code">model.autovacuum()</field>
</record>

Expand Down
17 changes: 17 additions & 0 deletions queue_job/migrations/12.0.1.0.1/post-migration.py
@@ -0,0 +1,17 @@
# Copyright 2019 Versada UAB
# License AGPL-3 or later (https://www.gnu.org/licenses/agpl).

import odoo


def migrate(cr, version):
"""Set "AutoVacuum Job Queue" cron job `state` to `code."""
if not version:
return
with odoo.api.Environment.manage():
env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {})
cron_job = env.ref(
'queue_job.ir_cron_autovacuum_queue_jobs',
raise_if_not_found=False)
if cron_job and cron_job.exists() and cron_job.state != 'code':
cron_job.state = 'code'
1 change: 1 addition & 0 deletions test_queue_job/tests/__init__.py
@@ -1,3 +1,4 @@
from . import test_autovacuum
from . import test_job
from . import test_job_channels
from . import test_related_actions
31 changes: 31 additions & 0 deletions test_queue_job/tests/test_autovacuum.py
@@ -0,0 +1,31 @@
# Copyright 2019 Versada UAB
# License AGPL-3 or later (https://www.gnu.org/licenses/agpl).

import datetime

from odoo.tests import common

from odoo.addons.queue_job.job import Job


class TestQueueJobAutovacuumCronJob(common.TransactionCase):

def setUp(self):
super().setUp()
self.queue_job = self.env['queue.job']
self.method = self.env['test.queue.job'].testing_method
self.cron_job = self.env.ref('queue_job.ir_cron_autovacuum_queue_jobs')

def test_old_jobs_are_deleted(self):
"""
Old jobs are deleted by the autovacuum cron job.
"""
test_job = Job(self.method)
test_job.set_done(result='ok')
test_job.date_done = datetime.datetime.now() - datetime.timedelta(
days=self.queue_job._removal_interval + 1)
test_job.store()

self.cron_job.method_direct_trigger()

self.assertFalse(test_job.db_record().exists())