From 24b11ded7f6ff12f9484aecdb8d30498bf1b9025 Mon Sep 17 00:00:00 2001 From: Terry Wilson Date: Thu, 22 Jan 2015 13:52:43 -0600 Subject: [PATCH] monkey patch stdlib before importing other modules Some oslo libraries assume that stdlib is already patched when they are imported (e.g. oslo_concurrency.processutils tests the 'time' module for monkey_patching to detect which 'subprocess' module to import. This can cause issues when things like test frameworks import modules that monkey_patch, as the order imports are made can break this kind of check. It is always good to monkey patch as soon as possible, hence trying to do the patching in neutron/__init__.py. This is an alternative to https://review.openstack.org/#/c/153225/ which just patches neutron/tests/__init__.py. Unfortunately, just monkey_patching in tests/__init__.py didn't fix all of the issues I ran into. For example, tempest tests were failing with timeouts. Closes-bug: #1418541 Change-Id: I7f2115a99acae5b6d61aab2f7334f498b8d99858 --- neutron/__init__.py | 5 +++++ run_tests.sh | 4 ++-- tox.ini | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/neutron/__init__.py b/neutron/__init__.py index 710b18c4641..20549b760a8 100644 --- a/neutron/__init__.py +++ b/neutron/__init__.py @@ -14,6 +14,11 @@ # under the License. import gettext +import os + +if not os.environ.get('NO_EVENTLET'): + import eventlet + eventlet.monkey_patch() gettext.install('neutron', unicode=1) diff --git a/run_tests.sh b/run_tests.sh index 6fe001f5381..b6224f07ce7 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -179,7 +179,7 @@ function warn_on_flake8_without_venv { function run_pep8 { echo "Running flake8 ..." warn_on_flake8_without_venv - ${wrapper} flake8 + NO_EVENTLET=1 ${wrapper} flake8 } function run_pep8_changed { @@ -192,7 +192,7 @@ function run_pep8_changed { local files=$(git diff --name-only $target | tr '\n' ' ') echo "Running flake8 on ${files}" warn_on_flake8_without_venv - diff -u --from-file /dev/null ${files} | ${wrapper} flake8 --diff + diff -u --from-file /dev/null ${files} | NO_EVENTLET=1 ${wrapper} flake8 --diff } diff --git a/tox.ini b/tox.ini index 3d1f62f44fd..9d88fd4942a 100644 --- a/tox.ini +++ b/tox.ini @@ -49,6 +49,7 @@ sitepackages = True downloadcache = ~/cache/pip [testenv:pep8] +setenv = NO_EVENTLET=1 commands = # If it is easier to add a check via a shell script, consider adding it in this file sh ./tools/misc-sanity-checks.sh