]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Update tox.ini to support RHEL 6.x.
authorDan Prince <dprince@redhat.com>
Thu, 7 Mar 2013 18:07:56 +0000 (13:07 -0500)
committerDan Prince <dprince@redhat.com>
Fri, 8 Mar 2013 13:56:48 +0000 (08:56 -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

tools/install_venv_common.py
tools/patch_tox_venv.py [new file with mode: 0644]
tox.ini

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..ce4b19b
--- /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 = 'Cinder'
+    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 7d1de9d72bb10698b67dfe6ef02fbdc70a1c2d89..666001a36c9c3d3c1cff54d8ddd35ec33356f2ff 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -15,7 +15,9 @@ setenv = VIRTUAL_ENV={envdir}
 
 deps = -r{toxinidir}/tools/pip-requires
        -r{toxinidir}/tools/test-requires
-commands = nosetests {posargs}
+commands =
+  python tools/patch_tox_venv.py
+  nosetests {posargs}
 
 [testenv:pep8]
 commands =