mirror of
https://github.com/python/cpython
synced 2026-09-29 11:30:29 +03:00
Merge with 3.4; Closes #22315
This commit is contained in:
commit
71a8eed615
2 changed files with 14 additions and 2 deletions
|
|
@ -125,12 +125,11 @@ def copy_tree(src, dst, preserve_mode=1, preserve_times=1,
|
|||
try:
|
||||
names = os.listdir(src)
|
||||
except OSError as e:
|
||||
(errno, errstr) = e
|
||||
if dry_run:
|
||||
names = []
|
||||
else:
|
||||
raise DistutilsFileError(
|
||||
"error listing files in '%s': %s" % (src, errstr))
|
||||
"error listing files in '%s': %s" % (src, e.strerror))
|
||||
|
||||
if not dry_run:
|
||||
mkpath(dst, verbose=verbose)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@ import unittest
|
|||
import os
|
||||
import stat
|
||||
import sys
|
||||
from unittest.mock import patch
|
||||
|
||||
from distutils import dir_util, errors
|
||||
from distutils.dir_util import (mkpath, remove_tree, create_tree, copy_tree,
|
||||
ensure_relative)
|
||||
|
||||
|
|
@ -11,6 +13,7 @@ from distutils import log
|
|||
from distutils.tests import support
|
||||
from test.support import run_unittest
|
||||
|
||||
|
||||
class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
|
||||
|
||||
def _log(self, msg, *args):
|
||||
|
|
@ -119,6 +122,16 @@ class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
|
|||
self.assertEqual(ensure_relative('c:\\home\\foo'), 'c:home\\foo')
|
||||
self.assertEqual(ensure_relative('home\\foo'), 'home\\foo')
|
||||
|
||||
@patch('os.listdir', side_effect=OSError())
|
||||
def test_copy_tree_exception_in_listdir(self, listdir):
|
||||
"""
|
||||
An exception in listdir should raise a DistutilsFileError
|
||||
"""
|
||||
with self.assertRaises(errors.DistutilsFileError):
|
||||
src = self.tempdirs[-1]
|
||||
dir_util.copy_tree(src, None)
|
||||
|
||||
|
||||
def test_suite():
|
||||
return unittest.makeSuite(DirUtilTestCase)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue