]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
tests: monkey patch stdlib before importing other modules
authorIhar Hrachyshka <ihrachys@redhat.com>
Thu, 5 Feb 2015 13:21:38 +0000 (14:21 +0100)
committerIhar Hrachyshka <ihrachys@redhat.com>
Wed, 18 Feb 2015 12:33:57 +0000 (13:33 +0100)
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
neutron/tests/functional/agent/linux/simple_daemon.py

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..bacc1911e8ee23d30086f381a846dc1f640a74c6 100644 (file)
@@ -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()
index 77fba81d497e4ec824361f54c4f805bdce634b27..bcc565cfbfe6acd8516e5a581249ce41c9a4406d 100644 (file)
@@ -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 '