-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_runner_runner.py
More file actions
59 lines (40 loc) · 1.75 KB
/
Copy pathtest_runner_runner.py
File metadata and controls
59 lines (40 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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))