Merge "[hacking] Improve N373 to catch also other primitives"

This commit is contained in:
Zuul
2025-11-17 16:18:33 +00:00
committed by Gerrit Code Review
3 changed files with 29 additions and 2 deletions
+8
View File
@@ -146,6 +146,9 @@ set_daemon_re = re.compile(r"\.setDaemon\(")
eventlet_stdlib_primitives_re = re.compile(
r".*(eventlet|greenthread)\.sleep\(.*")
eventlet_yield_re = re.compile(r".*time\.sleep\(0\).*")
eventlet_primitives_re = re.compile(
r".*(eventlet)\.(semaphore|timeout|event).*"
r"|from\s+eventlet\s+import\s+(semaphore|timeout|event)")
class BaseASTChecker(ast.NodeVisitor):
@@ -1120,6 +1123,11 @@ def check_eventlet_primitives(logical_line, filename):
if match:
yield (0, msg)
match = re.match(eventlet_primitives_re, logical_line)
if match:
yield (0, msg)
@core.flake8ext
def check_eventlet_yield(logical_line, filename):
+14
View File
@@ -1074,6 +1074,20 @@ class HackingTestCase(test.NoDBTestCase):
code, checks.check_eventlet_primitives, expected_errors=errors)
code = """
from eventlet import timeout
from eventlet import event
eventlet.event.Event
eventlet.timeout.Timeout(deadline)
eventlet.semaphore.Semaphore(3)
eventlet.semaphore.BoundedSemaphore(2)
"""
errors = [(x + 1, 0, 'N373') for x in range(6)]
self._assert_has_errors(
code, checks.check_eventlet_primitives, expected_errors=errors)
code = """
threading.Semaphore(value=1)
threading.Event()
time.sleep(0)
time.sleep(1)
"""
+7 -2
View File
@@ -27,6 +27,7 @@ from oslo_utils import uuidutils
from oslo_utils import versionutils
import testtools
from nova.compute import manager
from nova.compute import vm_states
from nova import exception
from nova import objects
@@ -459,8 +460,12 @@ class HostTestCase(test.NoDBTestCase):
@mock.patch.object(host.Host, "_connect")
def test_conn_event_thread(self, mock_conn):
event = eventlet.event.Event()
h = host.Host("qemu:///system", conn_event_handler=event.send)
event = manager.ThreadingEventWithResult()
# This emulates LibvirtDriver._handle_conn_event
def conn_event_handler(*args, **kwargs):
event.set()
h = host.Host("qemu:///system", conn_event_handler=conn_event_handler)
h.initialize()
h.get_connection()