42 lines
1.6 KiB
Python
Executable File
42 lines
1.6 KiB
Python
Executable File
# Copyright 2019 ACSONE SA/NV (<http://acsone.eu>)
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
|
|
class TestQueueJobCron(TransactionCase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
|
|
def test_queue_job_cron(self):
|
|
QueueJob = self.env["queue.job"]
|
|
default_channel = self.env.ref("queue_job_cron.channel_root_ir_cron")
|
|
cron = self.env.ref("queue_job.ir_cron_autovacuum_queue_jobs")
|
|
self.assertFalse(cron.run_as_queue_job)
|
|
|
|
cron.method_direct_trigger()
|
|
nb_jobs = QueueJob.search_count([("name", "=", cron.name)])
|
|
self.assertEqual(nb_jobs, 0)
|
|
|
|
cron.write({"run_as_queue_job": True, "channel_id": default_channel.id})
|
|
|
|
cron.method_direct_trigger()
|
|
qjob = QueueJob.search([("name", "=", cron.name)])
|
|
|
|
self.assertTrue(qjob)
|
|
self.assertEqual(qjob.name, cron.name)
|
|
self.assertEqual(qjob.priority, cron.priority)
|
|
self.assertEqual(qjob.user_id, cron.user_id)
|
|
self.assertEqual(qjob.channel, cron.channel_id.complete_name)
|
|
|
|
def test_queue_job_cron_depends(self):
|
|
cron = self.env.ref("queue_job.ir_cron_autovacuum_queue_jobs")
|
|
default_channel = self.env.ref("queue_job_cron.channel_root_ir_cron")
|
|
self.assertFalse(cron.run_as_queue_job)
|
|
cron.write({"run_as_queue_job": True})
|
|
self.assertEqual(cron.channel_id.id, default_channel.id)
|
|
|
|
def test_queue_job_cron_run(self):
|
|
cron = self.env.ref("queue_job.ir_cron_autovacuum_queue_jobs")
|
|
IrCron = self.env["ir.cron"]
|
|
IrCron._run_job_as_queue_job(server_action=cron.ir_actions_server_id)
|