diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2014-01-01 01:50:45 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2014-01-01 01:50:45 (GMT) |
commit | 3f48ac98c04fc17f12c63dcf593dd0c19379c7df (patch) | |
tree | 8a1d5e168f064c978e9e0be42af168a0e75dc385 | |
parent | b075cc0d760650ec4b65184faa9b6eebb1c1f8b2 (diff) | |
download | cpython-3f48ac98c04fc17f12c63dcf593dd0c19379c7df.zip cpython-3f48ac98c04fc17f12c63dcf593dd0c19379c7df.tar.gz cpython-3f48ac98c04fc17f12c63dcf593dd0c19379c7df.tar.bz2 |
Issue #20055: Fix test_shutil under Windows with symlink privileges held.
Patch by Vajrasky Kok.
-rw-r--r-- | Lib/test/test_shutil.py | 32 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
2 files changed, 22 insertions, 13 deletions
diff --git a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py index 96028a0..8a8ce86 100644 --- a/Lib/test/test_shutil.py +++ b/Lib/test/test_shutil.py @@ -287,18 +287,20 @@ class TestShutil(unittest.TestCase): self.assertNotEqual(os.stat(src).st_mode, os.stat(dst).st_mode) shutil.copymode(src, dst) self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode) - # follow src link - os.chmod(dst, stat.S_IRWXO) - shutil.copymode(src_link, dst) - self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode) - # follow dst link - os.chmod(dst, stat.S_IRWXO) - shutil.copymode(src, dst_link) - self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode) - # follow both links - os.chmod(dst, stat.S_IRWXO) - shutil.copymode(src_link, dst) - self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode) + # On Windows, os.chmod does not follow symlinks (issue #15411) + if os.name != 'nt': + # follow src link + os.chmod(dst, stat.S_IRWXO) + shutil.copymode(src_link, dst) + self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode) + # follow dst link + os.chmod(dst, stat.S_IRWXO) + shutil.copymode(src, dst_link) + self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode) + # follow both links + os.chmod(dst, stat.S_IRWXO) + shutil.copymode(src_link, dst_link) + self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode) @unittest.skipUnless(hasattr(os, 'lchmod'), 'requires os.lchmod') @support.skip_unless_symlink @@ -1543,7 +1545,11 @@ class TestMove(unittest.TestCase): dst_link = os.path.join(self.dst_dir, 'quux') shutil.move(dst, dst_link) self.assertTrue(os.path.islink(dst_link)) - self.assertEqual(os.path.realpath(src), os.path.realpath(dst_link)) + # On Windows, os.path.realpath does not follow symlinks (issue #9949) + if os.name == 'nt': + self.assertEqual(os.path.realpath(src), os.readlink(dst_link)) + else: + self.assertEqual(os.path.realpath(src), os.path.realpath(dst_link)) @support.skip_unless_symlink @mock_rename @@ -197,6 +197,9 @@ IDLE Tests ----- +- Issue #20055: Fix test_shutil under Windows with symlink privileges held. + Patch by Vajrasky Kok. + - Issue #19938: Re-enabled test_bug_1333982 in test_dis, which had been disabled since 3.0 due to the changes in listcomp handling. |