(Merge 3.4) test_venv: use support.rmtree() instead of shutil.rmtree() to fix
sporadic failures on Windows
This commit is contained in:
commit
1aa3cb6030
|
@ -8,13 +8,12 @@ Licensed to the PSF under a contributor agreement.
|
||||||
import ensurepip
|
import ensurepip
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import shutil
|
|
||||||
import struct
|
import struct
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
from test.support import (captured_stdout, captured_stderr, run_unittest,
|
from test.support import (captured_stdout, captured_stderr, run_unittest,
|
||||||
can_symlink, EnvironmentVarGuard)
|
can_symlink, EnvironmentVarGuard, rmtree)
|
||||||
import textwrap
|
import textwrap
|
||||||
import unittest
|
import unittest
|
||||||
import venv
|
import venv
|
||||||
|
@ -56,7 +55,7 @@ class BaseTest(unittest.TestCase):
|
||||||
self.exe = os.path.split(executable)[-1]
|
self.exe = os.path.split(executable)[-1]
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
shutil.rmtree(self.env_dir)
|
rmtree(self.env_dir)
|
||||||
|
|
||||||
def run_with_capture(self, func, *args, **kwargs):
|
def run_with_capture(self, func, *args, **kwargs):
|
||||||
with captured_stdout() as output:
|
with captured_stdout() as output:
|
||||||
|
@ -83,7 +82,7 @@ class BasicTest(BaseTest):
|
||||||
"""
|
"""
|
||||||
Test the create function with default arguments.
|
Test the create function with default arguments.
|
||||||
"""
|
"""
|
||||||
shutil.rmtree(self.env_dir)
|
rmtree(self.env_dir)
|
||||||
self.run_with_capture(venv.create, self.env_dir)
|
self.run_with_capture(venv.create, self.env_dir)
|
||||||
self.isdir(self.bindir)
|
self.isdir(self.bindir)
|
||||||
self.isdir(self.include)
|
self.isdir(self.include)
|
||||||
|
@ -121,7 +120,7 @@ class BasicTest(BaseTest):
|
||||||
self.assertEqual(sys.base_exec_prefix, sys.exec_prefix)
|
self.assertEqual(sys.base_exec_prefix, sys.exec_prefix)
|
||||||
|
|
||||||
# check a venv's prefixes
|
# check a venv's prefixes
|
||||||
shutil.rmtree(self.env_dir)
|
rmtree(self.env_dir)
|
||||||
self.run_with_capture(venv.create, self.env_dir)
|
self.run_with_capture(venv.create, self.env_dir)
|
||||||
envpy = os.path.join(self.env_dir, self.bindir, self.exe)
|
envpy = os.path.join(self.env_dir, self.bindir, self.exe)
|
||||||
cmd = [envpy, '-c', None]
|
cmd = [envpy, '-c', None]
|
||||||
|
@ -188,7 +187,7 @@ class BasicTest(BaseTest):
|
||||||
if os.path.islink(fn) or os.path.isfile(fn):
|
if os.path.islink(fn) or os.path.isfile(fn):
|
||||||
os.remove(fn)
|
os.remove(fn)
|
||||||
elif os.path.isdir(fn):
|
elif os.path.isdir(fn):
|
||||||
shutil.rmtree(fn)
|
rmtree(fn)
|
||||||
|
|
||||||
def test_unoverwritable_fails(self):
|
def test_unoverwritable_fails(self):
|
||||||
#create a file clashing with directories in the env dir
|
#create a file clashing with directories in the env dir
|
||||||
|
@ -254,7 +253,7 @@ class BasicTest(BaseTest):
|
||||||
"""
|
"""
|
||||||
Test that the sys.executable value is as expected.
|
Test that the sys.executable value is as expected.
|
||||||
"""
|
"""
|
||||||
shutil.rmtree(self.env_dir)
|
rmtree(self.env_dir)
|
||||||
self.run_with_capture(venv.create, self.env_dir)
|
self.run_with_capture(venv.create, self.env_dir)
|
||||||
envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe)
|
envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe)
|
||||||
cmd = [envpy, '-c', 'import sys; print(sys.executable)']
|
cmd = [envpy, '-c', 'import sys; print(sys.executable)']
|
||||||
|
@ -268,7 +267,7 @@ class BasicTest(BaseTest):
|
||||||
"""
|
"""
|
||||||
Test that the sys.executable value is as expected.
|
Test that the sys.executable value is as expected.
|
||||||
"""
|
"""
|
||||||
shutil.rmtree(self.env_dir)
|
rmtree(self.env_dir)
|
||||||
builder = venv.EnvBuilder(clear=True, symlinks=True)
|
builder = venv.EnvBuilder(clear=True, symlinks=True)
|
||||||
builder.create(self.env_dir)
|
builder.create(self.env_dir)
|
||||||
envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe)
|
envpy = os.path.join(os.path.realpath(self.env_dir), self.bindir, self.exe)
|
||||||
|
@ -299,12 +298,12 @@ class EnsurePipTest(BaseTest):
|
||||||
|
|
||||||
|
|
||||||
def test_no_pip_by_default(self):
|
def test_no_pip_by_default(self):
|
||||||
shutil.rmtree(self.env_dir)
|
rmtree(self.env_dir)
|
||||||
self.run_with_capture(venv.create, self.env_dir)
|
self.run_with_capture(venv.create, self.env_dir)
|
||||||
self.assert_pip_not_installed()
|
self.assert_pip_not_installed()
|
||||||
|
|
||||||
def test_explicit_no_pip(self):
|
def test_explicit_no_pip(self):
|
||||||
shutil.rmtree(self.env_dir)
|
rmtree(self.env_dir)
|
||||||
self.run_with_capture(venv.create, self.env_dir, with_pip=False)
|
self.run_with_capture(venv.create, self.env_dir, with_pip=False)
|
||||||
self.assert_pip_not_installed()
|
self.assert_pip_not_installed()
|
||||||
|
|
||||||
|
@ -321,7 +320,7 @@ class EnsurePipTest(BaseTest):
|
||||||
# Requesting pip fails without SSL (http://bugs.python.org/issue19744)
|
# Requesting pip fails without SSL (http://bugs.python.org/issue19744)
|
||||||
@unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
|
@unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
|
||||||
def test_with_pip(self):
|
def test_with_pip(self):
|
||||||
shutil.rmtree(self.env_dir)
|
rmtree(self.env_dir)
|
||||||
with EnvironmentVarGuard() as envvars:
|
with EnvironmentVarGuard() as envvars:
|
||||||
# pip's cross-version compatibility may trigger deprecation
|
# pip's cross-version compatibility may trigger deprecation
|
||||||
# warnings in current versions of Python. Ensure related
|
# warnings in current versions of Python. Ensure related
|
||||||
|
|
Loading…
Reference in New Issue