Merge "[hacking] Improve N373 to catch also other primitives"
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
"""
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user