From ea76d10e7492eb90f6777940304c67691caa366b Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Thu, 5 Feb 2015 14:21:38 +0100 Subject: [PATCH] tests: monkey patch stdlib before importing other modules Some oslo libraries assume that stdlib is already patched when they are imported (f.e. oslo.concurrency.processutils currently checks whether time module is monkey patched on import to detect which subprocess module should be used). For services, we achieve this by moving monkey_patch() calls as high in import list as possible. But for tests, we don't control the order in which testr loads test cases. So to be on safe side, we should make sure any attempt to load a test case from the tree results in eventlet patch. We can't put the monkey_patch() call into e.g. neutron/__init__.py to reuse it both for tests and for services, because in that case we may break flake8 that loads hacking checks from neutron.* namespace and relies on proper (unpatched) subprocess module. Closes-Bug: #1418541 Change-Id: Id58409000d0e086f3fb664a15935af4f1708c396 --- neutron/tests/__init__.py | 14 ++++++++++++++ .../tests/functional/agent/linux/simple_daemon.py | 6 +++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/neutron/tests/__init__.py b/neutron/tests/__init__.py index e69de29bb..bacc1911e 100644 --- a/neutron/tests/__init__.py +++ b/neutron/tests/__init__.py @@ -0,0 +1,14 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import eventlet +eventlet.monkey_patch() diff --git a/neutron/tests/functional/agent/linux/simple_daemon.py b/neutron/tests/functional/agent/linux/simple_daemon.py index 77fba81d4..bcc565cfb 100644 --- a/neutron/tests/functional/agent/linux/simple_daemon.py +++ b/neutron/tests/functional/agent/linux/simple_daemon.py @@ -12,7 +12,8 @@ # License for the specific language governing permissions and limitations # under the License. -import eventlet +import time + from oslo_config import cfg from neutron.agent.linux import daemon @@ -29,9 +30,8 @@ def main(): def run(self): while True: - eventlet.sleep(10) + time.sleep(10) - eventlet.monkey_patch() opts = [ cfg.StrOpt('uuid', help=_('uuid provided from the command line ' -- 2.45.2