MCPcopy Index your code
hub / github.com/python/cpython / test_copymode_symlink_to_symlink

Method test_copymode_symlink_to_symlink

Lib/test/test_shutil.py:1139–1166  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1137 @unittest.skipUnless(hasattr(os, 'lchmod'), 'requires os.lchmod')
1138 @os_helper.skip_unless_symlink
1139 def test_copymode_symlink_to_symlink(self):
1140 tmp_dir = self.mkdtemp()
1141 src = os.path.join(tmp_dir, 'foo')
1142 dst = os.path.join(tmp_dir, 'bar')
1143 src_link = os.path.join(tmp_dir, 'baz')
1144 dst_link = os.path.join(tmp_dir, 'quux')
1145 create_file(src, 'foo')
1146 create_file(dst, 'foo')
1147 os.symlink(src, src_link)
1148 os.symlink(dst, dst_link)
1149 os.chmod(src, stat.S_IRWXU|stat.S_IRWXG)
1150 os.chmod(dst, stat.S_IRWXU)
1151 os.lchmod(src_link, stat.S_IRWXO|stat.S_IRWXG)
1152 # link to link
1153 os.lchmod(dst_link, stat.S_IRWXO)
1154 old_mode = os.stat(dst).st_mode
1155 shutil.copymode(src_link, dst_link, follow_symlinks=False)
1156 self.assertEqual(os.lstat(src_link).st_mode,
1157 os.lstat(dst_link).st_mode)
1158 self.assertEqual(os.stat(dst).st_mode, old_mode)
1159 # src link - use chmod
1160 os.lchmod(dst_link, stat.S_IRWXO)
1161 shutil.copymode(src_link, dst, follow_symlinks=False)
1162 self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
1163 # dst link - use chmod
1164 os.lchmod(dst_link, stat.S_IRWXO)
1165 shutil.copymode(src, dst_link, follow_symlinks=False)
1166 self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
1167
1168 @unittest.skipIf(hasattr(os, 'lchmod'), 'requires os.lchmod to be missing')
1169 @os_helper.skip_unless_symlink

Callers

nothing calls this directly

Calls 8

mkdtempMethod · 0.80
lchmodMethod · 0.80
lstatMethod · 0.80
create_fileFunction · 0.70
joinMethod · 0.45
chmodMethod · 0.45
statMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected