From 6038b7059294b19ef42ec4d7f9bc39c198fdf038 Mon Sep 17 00:00:00 2001 From: git_admin Date: Mon, 27 Apr 2026 08:46:20 +0000 Subject: [PATCH] Tower: upload queue_job 16.0.2.12.0 (via marketplace) --- .../queue_job/tests/test_model_job_channel.py | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 addons/queue_job/tests/test_model_job_channel.py diff --git a/addons/queue_job/tests/test_model_job_channel.py b/addons/queue_job/tests/test_model_job_channel.py new file mode 100644 index 0000000..9f93305 --- /dev/null +++ b/addons/queue_job/tests/test_model_job_channel.py @@ -0,0 +1,59 @@ +# copyright 2018 Camptocamp +# license lgpl-3.0 or later (http://www.gnu.org/licenses/lgpl.html) + +from psycopg2 import IntegrityError + +import odoo +from odoo.tests import common + + +class TestJobChannel(common.TransactionCase): + def setUp(self): + super().setUp() + self.Channel = self.env["queue.job.channel"] + self.root_channel = self.Channel.search([("name", "=", "root")]) + + def test_channel_new(self): + channel = self.Channel.new() + self.assertFalse(channel.name) + self.assertFalse(channel.complete_name) + + def test_channel_create(self): + channel = self.Channel.create( + {"name": "test", "parent_id": self.root_channel.id} + ) + self.assertEqual(channel.name, "test") + self.assertEqual(channel.complete_name, "root.test") + channel2 = self.Channel.create({"name": "test", "parent_id": channel.id}) + self.assertEqual(channel2.name, "test") + self.assertEqual(channel2.complete_name, "root.test.test") + + @odoo.tools.mute_logger("odoo.sql_db") + def test_channel_complete_name_uniq(self): + channel = self.Channel.create( + {"name": "test", "parent_id": self.root_channel.id} + ) + self.assertEqual(channel.name, "test") + self.assertEqual(channel.complete_name, "root.test") + + self.Channel.create({"name": "test", "parent_id": self.root_channel.id}) + + # Flush process all the pending recomputations (or at least the + # given field and flush the pending updates to the database. + # It is normally called on commit. + + # The context manager 'with self.assertRaises(IntegrityError)' purposefully + # not uses here due to its 'flush_all()' method inside it and exception raises + # before the line 'self.env.flush_all()'. So, we are expecting an IntegrityError. + try: + self.env.flush_all() + except IntegrityError as ex: + self.assertIn("queue_job_channel_name_uniq", ex.pgerror) + else: + self.assertEqual(True, False) + + def test_channel_name_get(self): + channel = self.Channel.create( + {"name": "test", "parent_id": self.root_channel.id} + ) + self.assertEqual(channel.name_get(), [(channel.id, "root.test")])