Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 71a8eed

Browse files
committed
Merge with 3.4; Closes #22315
2 parents c49a6aa + 311321e commit 71a8eed

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

Lib/distutils/dir_util.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,11 @@ def copy_tree(src, dst, preserve_mode=1, preserve_times=1,
125125
try:
126126
names = os.listdir(src)
127127
except OSError as e:
128-
(errno, errstr) = e
129128
if dry_run:
130129
names = []
131130
else:
132131
raise DistutilsFileError(
133-
"error listing files in '%s': %s" % (src, errstr))
132+
"error listing files in '%s': %s" % (src, e.strerror))
134133

135134
if not dry_run:
136135
mkpath(dst, verbose=verbose)

Lib/distutils/tests/test_dir_util.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@
33
import os
44
import stat
55
import sys
6+
from unittest.mock import patch
67

8+
from distutils import dir_util, errors
79
from distutils.dir_util import (mkpath, remove_tree, create_tree, copy_tree,
810
ensure_relative)
911

1012
from distutils import log
1113
from distutils.tests import support
1214
from test.support import run_unittest
1315

16+
1417
class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
1518

1619
def _log(self, msg, *args):
@@ -119,6 +122,16 @@ def test_ensure_relative(self):
119122
self.assertEqual(ensure_relative('c:\\home\\foo'), 'c:home\\foo')
120123
self.assertEqual(ensure_relative('home\\foo'), 'home\\foo')
121124

125+
@patch('os.listdir', side_effect=OSError())
126+
def test_copy_tree_exception_in_listdir(self, listdir):
127+
"""
128+
An exception in listdir should raise a DistutilsFileError
129+
"""
130+
with self.assertRaises(errors.DistutilsFileError):
131+
src = self.tempdirs[-1]
132+
dir_util.copy_tree(src, None)
133+
134+
122135
def test_suite():
123136
return unittest.makeSuite(DirUtilTestCase)
124137

0 commit comments

Comments
 (0)