1
0
mirror of synced 2024-11-25 10:44:23 +01:00

Fix the testsuite on Python3.8

There is a bug in Python3.8 (https://bugs.python.org/issue38688)
triggering an infinite recursion when copying a tree
in a subfolder of the current one. We're working around it
by using a list instead of an iterator, so that Python
won't "discover" the target folder as part of the source files.

This should fix #130
This commit is contained in:
jvoisin 2019-11-30 09:57:18 +01:00
parent 03f5129968
commit 6e52661cfb

View File

@ -1,3 +1,4 @@
import sys
import random import random
import os import os
import shutil import shutil
@ -258,7 +259,16 @@ class TestCommandLineParallel(unittest.TestCase):
os.remove(path) os.remove(path)
def test_different(self): def test_different(self):
shutil.copytree('./tests/data/', './tests/data/parallel') src = './tests/data/'
dst = './tests/data/parallel'
if sys.version_info >= (3, 8):
with os.scandir(src) as itr:
entries = list(itr)
shutil._copytree(entries=entries, src=src, dst=dst, symlinks=False,
ignore=None, copy_function=shutil.copy2,
ignore_dangling_symlinks=False)
else:
shutil.copytree(src, dst)
proc = subprocess.Popen(mat2_binary + glob.glob('./tests/data/parallel/dirty.*'), proc = subprocess.Popen(mat2_binary + glob.glob('./tests/data/parallel/dirty.*'),
stdout=subprocess.PIPE) stdout=subprocess.PIPE)