mirror of
https://github.com/python/cpython.git
synced 2025-08-27 12:16:04 +00:00
Issue #20055: Fix test_shutil under Windows with symlink privileges held.
Patch by Vajrasky Kok.
This commit is contained in:
parent
b075cc0d76
commit
3f48ac98c0
2 changed files with 22 additions and 13 deletions
|
@ -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.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue