]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Update tox.ini to support RHEL 6.x.
authorDan Prince <dprince@redhat.com>
Thu, 7 Mar 2013 17:41:30 +0000 (12:41 -0500)
committerDan Prince <dprince@redhat.com>
Fri, 8 Mar 2013 13:52:25 +0000 (08:52 -0500)
In order to support running unit tests on RHEL 6.x we need to patch
eventlet with contrib/redhat-eventlet.patch. We already
have support for this in the tools/install_venv_common.py but we
need to make a couple changes to allow tox to consume this:

1) Sync in the latest intall_venv_common.py from oslo. This changes
 patch to use the -N option (ignore already applied patches) and
 makes it safe to call the patching function more than once.

2) Add a new patch_tox_venv.py script in tools.

3) Update tox.ini to call patch_tox_venv.py before it runs tests and
 coverage.

NOTE: This will hopefully go away eventually once this patch lands:

 https://bitbucket.org/eventlet/eventlet/issue/89/add-a-timeout-argument-to-subprocesspopen#comment-3342969

Change-Id: I3e2b07c3f718e4aede5c5f231ff0cdb7721ec885

contrib/redhat-eventlet.patch [new file with mode: 0644]
tools/install_venv_common.py
tools/patch_tox_venv.py [new file with mode: 0644]
tox.ini

diff --git a/contrib/redhat-eventlet.patch b/contrib/redhat-eventlet.patch
new file mode 100644 (file)
index 0000000..cf2ff53
--- /dev/null
@@ -0,0 +1,16 @@
+--- .nova-venv/lib/python2.6/site-packages/eventlet/green/subprocess.py.orig
+2011-05-25
+23:31:34.597271402 +0000
++++ .nova-venv/lib/python2.6/site-packages/eventlet/green/subprocess.py
+2011-05-25
+23:33:24.055602468 +0000
+@@ -32,7 +32,7 @@
+                     setattr(self, attr, wrapped_pipe)
+         __init__.__doc__ = subprocess_orig.Popen.__init__.__doc__
+
+-    def wait(self, check_interval=0.01):
++    def wait(self, check_interval=0.01, timeout=None):
+         # Instead of a blocking OS call, this version of wait() uses logic
+         # borrowed from the eventlet 0.2 processes.Process.wait() method.
+         try:
+
index fd9076f0eb6bd312b14d32528ea698198de4ff36..fca2512299051ea51a6348d983de71bd00c7e2e6 100644 (file)
@@ -185,7 +185,8 @@ class Fedora(Distro):
         self.run_command(['sudo', 'yum', 'install', '-y', pkg], **kwargs)
 
     def apply_patch(self, originalfile, patchfile):
-        self.run_command(['patch', originalfile, patchfile])
+        self.run_command(['patch', '-N', originalfile, patchfile],
+                         check_exit_code=False)
 
     def install_virtualenv(self):
         if self.check_cmd('virtualenv'):
diff --git a/tools/patch_tox_venv.py b/tools/patch_tox_venv.py
new file mode 100644 (file)
index 0000000..bcd1fc5
--- /dev/null
@@ -0,0 +1,38 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2013 Red Hat, Inc.
+#
+#    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 os
+import sys
+
+import install_venv_common as install_venv
+
+
+def main(argv):
+    root = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+
+    venv = os.environ['VIRTUAL_ENV']
+
+    pip_requires = os.path.join(root, 'tools', 'pip-requires')
+    test_requires = os.path.join(root, 'tools', 'test-requires')
+    py_version = "python%s.%s" % (sys.version_info[0], sys.version_info[1])
+    project = 'Quantum'
+    install = install_venv.InstallVenv(root, venv, pip_requires, test_requires,
+                                       py_version, project)
+    #NOTE(dprince): For Tox we only run post_process (which patches files, etc)
+    install.post_process()
+
+if __name__ == '__main__':
+    main(sys.argv)
diff --git a/tox.ini b/tox.ini
index 20a7f545f89ff832a581cb8a3e1a4dd2cf37a007..08e723527aff1a4bce4304840639fa55a6872ea3 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -12,7 +12,9 @@ setenv = VIRTUAL_ENV={envdir}
 deps = -r{toxinidir}/tools/pip-requires
        -r{toxinidir}/tools/test-requires
        setuptools_git>=0.4
-commands = nosetests {posargs}
+commands =
+  python tools/patch_tox_venv.py
+  nosetests {posargs}
 
 [tox:jenkins]
 sitepackages = True