Commits

Takayuki Shimizukawa committed cb602b5

support parallel testing with detox

Comments (0)

Files changed (2)

 
 import sys
 from os import path, chdir, listdir, environ
+import shutil
+
+testroot = path.dirname(__file__) or '.'
+if 'BUILD_TEST_PATH' in environ:
+    # for tox testing
+    newroot = environ['BUILD_TEST_PATH']
+    # tox installs the sphinx package, no need for sys.path.insert
+else:
+    newroot = path.join(testroot, path.pardir, 'build')
+    newroot = path.join(newroot, listdir(newroot)[0], 'tests')
+
+shutil.rmtree(newroot, ignore_errors=True)
 
 if sys.version_info >= (3, 0):
     print('Copying and converting sources to build/lib/tests...')
     from distutils.util import copydir_run_2to3
-    testroot = path.dirname(__file__) or '.'
-    if 'BUILD_TEST_PATH' in environ:
-        # for tox testing
-        newroot = environ['BUILD_TEST_PATH']
-        # tox installs the sphinx package, no need for sys.path.insert
-    else:
-        newroot = path.join(testroot, path.pardir, 'build')
-        newroot = path.join(newroot, listdir(newroot)[0], 'tests')
-        # always test the sphinx package from build/lib/
-        sys.path.insert(0, path.abspath(path.join(newroot, path.pardir)))
     copydir_run_2to3(testroot, newroot)
-    # switch to the converted dir so nose tests the right tests
-    chdir(newroot)
 else:
-    # always test the sphinx package from this directory
-    sys.path.insert(0, path.join(path.dirname(__file__), path.pardir))
+    # just copying test directory to parallel testing
+    print('Copying sources to build/lib/tests...')
+    shutil.copytree(testroot, newroot)
+
+# always test the sphinx package from build/lib/
+sys.path.insert(0, path.abspath(path.join(newroot, path.pardir)))
+# switch to the copy/converted dir so nose tests the right tests
+chdir(newroot)
 
 try:
     import nose
     {[testenv]deps}
 setenv=
     PIP_INSECURE = 1
+    {[testenv]setenv}
 
 [testenv:py33]
 deps=