(Merge 3.4) test_venv: use support.rmtree() instead of shutil.rmtree() to fix

sporadic failures on Windows
This commit is contained in:
Victor Stinner 2014-10-10 14:23:25 +02:00
commit 1aa3cb6030
1 changed files with 10 additions and 11 deletions

View File

@ -8,13 +8,12 @@ Licensed to the PSF under a contributor agreement.
import ensurepip
import os
import os.path
import shutil
import struct
import subprocess
import sys
import tempfile
from test.support import (captured_stdout, captured_stderr, run_unittest,
can_symlink, EnvironmentVarGuard)
can_symlink, EnvironmentVarGuard, rmtree)
import textwrap
import unittest
import venv
@ -56,7 +55,7 @@ class BaseTest(unittest.TestCase):
self.exe = os.path.split(executable)[-1]
def tearDown(self):
shutil.rmtree(self.env_dir)
rmtree(self.env_dir)
def run_with_capture(self, func, *args, **kwargs):
with captured_stdout() as output:
@ -83,7 +82,7 @@ class BasicTest(BaseTest):
"""
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.isdir(self.bindir)
self.isdir(self.include)
@ -121,7 +120,7 @@ class BasicTest(BaseTest):
self.assertEqual(sys.base_exec_prefix, sys.exec_prefix)
# check a venv's prefixes
shutil.rmtree(self.env_dir)
rmtree(self.env_dir)
self.run_with_capture(venv.create, self.env_dir)
envpy = os.path.join(self.env_dir, self.bindir, self.exe)
cmd = [envpy, '-c', None]
@ -188,7 +187,7 @@ class BasicTest(BaseTest):
if os.path.islink(fn) or os.path.isfile(fn):
os.remove(fn)
elif os.path.isdir(fn):
shutil.rmtree(fn)
rmtree(fn)
def test_unoverwritable_fails(self):
#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.
"""
shutil.rmtree(self.env_dir)
rmtree(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)
cmd = [envpy, '-c', 'import sys; print(sys.executable)']
@ -268,7 +267,7 @@ class BasicTest(BaseTest):
"""
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.create(self.env_dir)
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):
shutil.rmtree(self.env_dir)
rmtree(self.env_dir)
self.run_with_capture(venv.create, self.env_dir)
self.assert_pip_not_installed()
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.assert_pip_not_installed()
@ -321,7 +320,7 @@ class EnsurePipTest(BaseTest):
# Requesting pip fails without SSL (http://bugs.python.org/issue19744)
@unittest.skipIf(ssl is None, ensurepip._MISSING_SSL_MESSAGE)
def test_with_pip(self):
shutil.rmtree(self.env_dir)
rmtree(self.env_dir)
with EnvironmentVarGuard() as envvars:
# pip's cross-version compatibility may trigger deprecation
# warnings in current versions of Python. Ensure related