From 05027ef13c1e3122e3f7c417df6181f94508db1e Mon Sep 17 00:00:00 2001 From: git_admin Date: Mon, 27 Apr 2026 08:46:19 +0000 Subject: [PATCH] Tower: upload queue_job 16.0.2.12.0 (via marketplace) --- addons/queue_job/tests/test_runner_runner.py | 59 ++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 addons/queue_job/tests/test_runner_runner.py diff --git a/addons/queue_job/tests/test_runner_runner.py b/addons/queue_job/tests/test_runner_runner.py new file mode 100644 index 0000000..131ce63 --- /dev/null +++ b/addons/queue_job/tests/test_runner_runner.py @@ -0,0 +1,59 @@ +# Copyright 2015-2016 Camptocamp SA +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html) + +# pylint: disable=odoo-addons-relative-import +# we are testing, we want to test as we were an external consumer of the API +import os + +from odoo.tests import BaseCase, tagged + +from odoo.addons.queue_job.jobrunner import runner + +from .common import load_doctests + +load_tests = load_doctests(runner) + + +@tagged("-at_install", "post_install") +class TestRunner(BaseCase): + @classmethod + def _is_open_file_descriptor(cls, fd): + try: + os.fstat(fd) + return True + except OSError: + return False + + def test_runner_file_descriptor(self): + a_runner = runner.QueueJobRunner.from_environ_or_config() + + read_fd, write_fd = a_runner._stop_pipe + self.assertTrue(self._is_open_file_descriptor(read_fd)) + self.assertTrue(self._is_open_file_descriptor(write_fd)) + + del a_runner + + self.assertFalse(self._is_open_file_descriptor(read_fd)) + self.assertFalse(self._is_open_file_descriptor(write_fd)) + + def test_runner_file_closed_read_descriptor(self): + a_runner = runner.QueueJobRunner.from_environ_or_config() + + read_fd, write_fd = a_runner._stop_pipe + os.close(read_fd) + + del a_runner + + self.assertFalse(self._is_open_file_descriptor(read_fd)) + self.assertFalse(self._is_open_file_descriptor(write_fd)) + + def test_runner_file_closed_write_descriptor(self): + a_runner = runner.QueueJobRunner.from_environ_or_config() + + read_fd, write_fd = a_runner._stop_pipe + os.close(write_fd) + + del a_runner + + self.assertFalse(self._is_open_file_descriptor(read_fd)) + self.assertFalse(self._is_open_file_descriptor(write_fd))