• Home
  • Raw
  • Download

Lines Matching full:os

9 import os
10 import os.path
62 builtin_rename = os.rename
63 os.rename = _fake_rename
66 os.rename = builtin_rename
72 If *path* is a tuple instead of a string, os.path.join will be used to
77 path = os.path.join(*path)
99 assert os.path.getsize(path) == size
104 If *path* is a tuple instead of a string, os.path.join will be used to
109 path = os.path.join(*path)
117 for name in sorted(os.listdir(path)):
118 p = os.path.join(path, name)
119 if os.path.isdir(p) and not os.path.islink(p):
129 if not hasattr(os, "sendfile"):
134 with tempfile.NamedTemporaryFile("wb", dir=os.getcwd(), delete=False) as f:
139 with tempfile.NamedTemporaryFile("wb", dir=os.getcwd(), delete=False) as dst:
144 os.sendfile(outfd, infd, 0, 2)
178 d = tempfile.mkdtemp(prefix=prefix, dir=os.getcwd())
187 victim = os.path.join(tmp, 'killme')
188 os.mkdir(victim)
189 write_file(os.path.join(victim, 'somefile'), 'foo')
190 victim = os.fsencode(victim)
197 dir_ = os.path.join(tmp, 'dir')
198 os.mkdir(dir_)
199 link = os.path.join(tmp, 'link')
200 os.symlink(dir_, link)
202 self.assertTrue(os.path.exists(dir_))
203 self.assertTrue(os.path.lexists(link))
209 self.assertIs(errors[0][0], os.path.islink)
216 dir1 = os.path.join(tmp, 'dir1')
217 dir2 = os.path.join(dir1, 'dir2')
218 dir3 = os.path.join(tmp, 'dir3')
220 os.mkdir(d)
221 file1 = os.path.join(tmp, 'file1')
223 link1 = os.path.join(dir1, 'link1')
224 os.symlink(dir2, link1)
225 link2 = os.path.join(dir1, 'link2')
226 os.symlink(dir3, link2)
227 link3 = os.path.join(dir1, 'link3')
228 os.symlink(file1, link3)
231 self.assertFalse(os.path.exists(dir1))
232 self.assertTrue(os.path.exists(dir3))
233 self.assertTrue(os.path.exists(file1))
238 dir_ = os.path.join(tmp, 'dir')
239 os.mkdir(dir_)
240 link = os.path.join(tmp, 'link')
244 self.assertTrue(os.path.exists(dir_))
245 self.assertTrue(os.path.lexists(link))
251 self.assertIs(errors[0][0], os.path.islink)
258 dir1 = os.path.join(tmp, 'dir1')
259 dir2 = os.path.join(dir1, 'dir2')
260 dir3 = os.path.join(tmp, 'dir3')
262 os.mkdir(d)
263 file1 = os.path.join(tmp, 'file1')
265 link1 = os.path.join(dir1, 'link1')
267 link2 = os.path.join(dir1, 'link2')
269 link3 = os.path.join(dir1, 'link3')
273 self.assertFalse(os.path.exists(dir1))
274 self.assertTrue(os.path.exists(dir3))
275 self.assertTrue(os.path.exists(file1))
287 filename = os.path.join(tmpdir, "tstfile")
291 self.assertTrue(os.path.exists(filename))
294 self.assertTrue(os.path.exists(filename))
300 self.assertIs(errors[0][0], os.scandir)
304 self.assertIs(errors[1][0], os.rmdir)
312 @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0,
316 os.mkdir(TESTFN)
319 self.child_file_path = os.path.join(TESTFN, 'a')
320 self.child_dir_path = os.path.join(TESTFN, 'b')
322 os.mkdir(self.child_dir_path)
323 old_dir_mode = os.stat(TESTFN).st_mode
324 old_child_file_mode = os.stat(self.child_file_path).st_mode
325 old_child_dir_mode = os.stat(self.child_dir_path).st_mode
328 os.chmod(self.child_file_path, new_mode)
329 os.chmod(self.child_dir_path, new_mode)
330 os.chmod(TESTFN, new_mode)
332 self.addCleanup(os.chmod, TESTFN, old_dir_mode)
333 self.addCleanup(os.chmod, self.child_file_path, old_child_file_mode)
334 self.addCleanup(os.chmod, self.child_dir_path, old_child_dir_mode)
347 # func is os.remove.
350 # at os.listdir. The first failure may legally
353 if func is os.unlink:
355 elif func is os.rmdir:
358 self.assertIs(func, os.listdir)
363 self.assertEqual(func, os.rmdir)
370 orig_lstat = os.lstat
376 os.lstat = raiser
378 os.mkdir(TESTFN)
382 os.lstat = orig_lstat
385 _use_fd_functions = ({os.open, os.stat, os.unlink, os.rmdir} <=
386 os.supports_dir_fd and
387 os.listdir in os.supports_fd and
388 os.stat in os.supports_follow_symlinks)
393 d = os.path.join(tmp_dir, 'a')
394 os.mkdir(d)
411 os.close(handle)
413 os.remove(path)
418 os.mkdir(TESTFN)
420 src = os.path.join(TESTFN, 'cheese')
421 dst = os.path.join(TESTFN, 'shop')
422 os.mkdir(src)
423 os.symlink(src, dst)
431 os.mkdir(TESTFN)
433 src = os.path.join(TESTFN, 'cheese')
434 dst = os.path.join(TESTFN, 'shop')
435 os.mkdir(src)
436 open(os.path.join(src, 'spam'), 'wb').close()
448 dst_dir = os.path.join(self.mkdtemp(), 'destination')
450 self.addCleanup(shutil.rmtree, os.path.dirname(dst_dir))
452 os.mkdir(os.path.join(src_dir, 'test_dir'))
456 self.assertTrue(os.path.isfile(os.path.join(dst_dir, 'test.txt')))
457 self.assertTrue(os.path.isdir(os.path.join(dst_dir, 'test_dir')))
458 self.assertTrue(os.path.isfile(os.path.join(dst_dir, 'test_dir',
472 os.mkdir(os.path.join(src_dir, 'existing_dir'))
473 os.mkdir(os.path.join(dst_dir, 'existing_dir'))
478 self.assertTrue(os.path.isfile(os.path.join(dst_dir, 'nonexisting.txt')))
479 self.assertTrue(os.path.isdir(os.path.join(dst_dir, 'existing_dir')))
480 self.assertTrue(os.path.isfile(os.path.join(dst_dir, 'existing_dir',
493 src_dir = os.path.join(tmp_dir, 'src')
494 dst_dir = os.path.join(tmp_dir, 'dst')
495 sub_dir = os.path.join(src_dir, 'sub')
496 os.mkdir(src_dir)
497 os.mkdir(sub_dir)
499 src_link = os.path.join(sub_dir, 'link')
500 dst_link = os.path.join(dst_dir, 'sub/link')
501 os.symlink(os.path.join(src_dir, 'file.txt'),
503 if hasattr(os, 'lchmod'):
504 os.lchmod(src_link, stat.S_IRWXU | stat.S_IRWXO)
505 if hasattr(os, 'lchflags') and hasattr(stat, 'UF_NODUMP'):
506 os.lchflags(src_link, stat.UF_NODUMP)
507 src_stat = os.lstat(src_link)
509 self.assertTrue(os.path.islink(os.path.join(dst_dir, 'sub', 'link')))
510 actual = os.readlink(os.path.join(dst_dir, 'sub', 'link'))
513 if os.name == 'nt' and actual.startswith('\\\\?\\'):
515 self.assertEqual(actual, os.path.join(src_dir, 'file.txt'))
516 dst_stat = os.lstat(dst_link)
517 if hasattr(os, 'lchmod'):
519 if hasattr(os, 'lchflags'):
524 join = os.path.join
525 exists = os.path.exists
531 os.mkdir(join(src_dir, 'test_dir'))
533 os.mkdir(join(src_dir, 'test_dir2'))
535 os.mkdir(join(src_dir, 'test_dir2', 'subdir'))
536 os.mkdir(join(src_dir, 'test_dir2', 'subdir2'))
565 path = os.path.join(src, name)
567 if (os.path.isdir(path) and
570 elif os.path.splitext(path)[-1] in ('.py'):
585 shutil.rmtree(os.path.dirname(dst_dir))
588 join = os.path.join
589 exists = os.path.exists
594 os.mkdir(join(src_dir))
595 os.mkdir(join(src_dir, 'test_dir'))
596 os.mkdir(os.path.join(src_dir, 'test_dir', 'subdir'))
621 src_dir_entry = list(os.scandir(tmp_dir))[0]
622 self.assertIsInstance(src_dir_entry, os.DirEntry)
631 src_dir = os.path.join(tmp_dir, 'source')
632 os.mkdir(src_dir)
633 dst_dir = os.path.join(tmp_dir, 'destination')
636 os.chmod(src_dir, 0o777)
638 os.chmod(os.path.join(src_dir, 'permissive.txt'), 0o777)
640 os.chmod(os.path.join(src_dir, 'restrictive.txt'), 0o600)
643 os.chmod(restrictive_subdir, 0o600)
646 self.assertEqual(os.stat(src_dir).st_mode, os.stat(dst_dir).st_mode)
647 self.assertEqual(os.stat(os.path.join(src_dir, 'permissive.txt')).st_mode,
648 os.stat(os.path.join(dst_dir, 'permissive.txt')).st_mode)
649 self.assertEqual(os.stat(os.path.join(src_dir, 'restrictive.txt')).st_mode,
650 os.stat(os.path.join(dst_dir, 'restrictive.txt')).st_mode)
651 restrictive_subdir_dst = os.path.join(dst_dir,
652 os.path.split(restrictive_subdir)[1])
653 self.assertEqual(os.stat(restrictive_subdir).st_mode,
654 os.stat(restrictive_subdir_dst).st_mode)
656 @unittest.mock.patch('os.chmod')
662 dst_dir = os.path.join(self.mkdtemp(), 'destination')
664 self.addCleanup(shutil.rmtree, os.path.dirname(dst_dir))
676 self.assertEqual(a, os.path.join(src, 'foo'))
677 self.assertEqual(b, os.path.join(dst, 'foo'))
682 with open(os.path.join(src, 'foo'), 'w', encoding='utf-8') as f:
688 @unittest.skipUnless(hasattr(os, "mkfifo"), 'requires os.mkfifo()')
693 os.mkdir(TESTFN)
695 subdir = os.path.join(TESTFN, "subdir")
696 os.mkdir(subdir)
697 pipe = os.path.join(subdir, "mypipe")
699 os.mkfifo(pipe)
701 self.skipTest('os.mkfifo(): %s' % e)
717 dst_dir = os.path.join(self.mkdtemp(), 'destination')
719 os.mkdir(os.path.join(src_dir, 'test_dir'))
733 dst_dir = os.path.join(self.mkdtemp(), 'destination')
734 os.symlink('IDONTEXIST', os.path.join(src_dir, 'test.txt'))
735 os.mkdir(os.path.join(src_dir, 'test_dir'))
740 dst_dir = os.path.join(self.mkdtemp(), 'destination2')
742 self.assertNotIn('test.txt', os.listdir(dst_dir))
745 dst_dir = os.path.join(self.mkdtemp(), 'destination3')
747 self.assertIn('test.txt', os.listdir(dst_dir))
752 dst_dir = os.path.join(self.mkdtemp(), 'destination')
753 os.mkdir(os.path.join(src_dir, 'real_dir'))
754 with open(os.path.join(src_dir, 'real_dir', 'test.txt'), 'wb'):
756 os.symlink(os.path.join(src_dir, 'real_dir'),
757 os.path.join(src_dir, 'link_to_dir'),
761 self.assertFalse(os.path.islink(os.path.join(dst_dir, 'link_to_dir')))
762 self.assertIn('test.txt', os.listdir(os.path.join(dst_dir, 'link_to_dir')))
764 dst_dir = os.path.join(self.mkdtemp(), 'destination2')
766 self.assertTrue(os.path.islink(os.path.join(dst_dir, 'link_to_dir')))
767 self.assertIn('test.txt', os.listdir(os.path.join(dst_dir, 'link_to_dir')))
774 src = os.path.join(src_dir, 'foo')
777 self.assertEqual(['foo'], os.listdir(rv))
783 src_dir = os.path.join(base_dir, "t", "pg")
784 dst_dir = os.path.join(src_dir, "somevendor", "1.0")
785 os.makedirs(src_dir)
786 src = os.path.join(src_dir, 'pol')
789 self.assertEqual(['pol'], os.listdir(rv))
798 src = os.path.join(tmp_dir, 'foo')
799 dst = os.path.join(tmp_dir, 'bar')
800 src_link = os.path.join(tmp_dir, 'baz')
801 dst_link = os.path.join(tmp_dir, 'quux')
804 os.symlink(src, src_link)
805 os.symlink(dst, dst_link)
806 os.chmod(src, stat.S_IRWXU|stat.S_IRWXG)
808 os.chmod(dst, stat.S_IRWXO)
809 self.assertNotEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
811 self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
812 # On Windows, os.chmod does not follow symlinks (issue #15411)
813 if os.name != 'nt':
815 os.chmod(dst, stat.S_IRWXO)
817 self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
819 os.chmod(dst, stat.S_IRWXO)
821 self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
823 os.chmod(dst, stat.S_IRWXO)
825 self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
827 @unittest.skipUnless(hasattr(os, 'lchmod'), 'requires os.lchmod')
831 src = os.path.join(tmp_dir, 'foo')
832 dst = os.path.join(tmp_dir, 'bar')
833 src_link = os.path.join(tmp_dir, 'baz')
834 dst_link = os.path.join(tmp_dir, 'quux')
837 os.symlink(src, src_link)
838 os.symlink(dst, dst_link)
839 os.chmod(src, stat.S_IRWXU|stat.S_IRWXG)
840 os.chmod(dst, stat.S_IRWXU)
841 os.lchmod(src_link, stat.S_IRWXO|stat.S_IRWXG)
843 os.lchmod(dst_link, stat.S_IRWXO)
845 self.assertEqual(os.lstat(src_link).st_mode,
846 os.lstat(dst_link).st_mode)
847 self.assertNotEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
849 os.lchmod(dst_link, stat.S_IRWXO)
851 self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
853 os.lchmod(dst_link, stat.S_IRWXO)
855 self.assertEqual(os.stat(src).st_mode, os.stat(dst).st_mode)
857 @unittest.skipIf(hasattr(os, 'lchmod'), 'requires os.lchmod to be missing')
861 src = os.path.join(tmp_dir, 'foo')
862 dst = os.path.join(tmp_dir, 'bar')
863 src_link = os.path.join(tmp_dir, 'baz')
864 dst_link = os.path.join(tmp_dir, 'quux')
867 os.symlink(src, src_link)
868 os.symlink(dst, dst_link)
876 src = os.path.join(tmp_dir, 'foo')
877 dst = os.path.join(tmp_dir, 'bar')
878 src_link = os.path.join(tmp_dir, 'baz')
879 dst_link = os.path.join(tmp_dir, 'qux')
881 src_stat = os.stat(src)
882 os.utime(src, (src_stat.st_atime,
885 self.assertNotEqual(os.stat(src).st_mtime, os.stat(dst).st_mtime)
886 os.symlink(src, src_link)
887 os.symlink(dst, dst_link)
888 if hasattr(os, 'lchmod'):
889 os.lchmod(src_link, stat.S_IRWXO)
890 if hasattr(os, 'lchflags') and hasattr(stat, 'UF_NODUMP'):
891 os.lchflags(src_link, stat.UF_NODUMP)
892 src_link_stat = os.lstat(src_link)
894 if hasattr(os, 'lchmod'):
896 self.assertNotEqual(src_link_stat.st_mode, os.stat(dst).st_mode)
899 dst_link_stat = os.lstat(dst_link)
900 if os.utime in os.supports_follow_symlinks:
905 if hasattr(os, 'lchmod'):
907 if hasattr(os, 'lchflags') and hasattr(src_link_stat, 'st_flags'):
911 self.assertTrue(abs(os.stat(src).st_mtime - os.stat(dst).st_mtime) <
914 @unittest.skipUnless(hasattr(os, 'chflags') and
917 "requires os.chflags, EOPNOTSUPP & ENOTSUP")
920 file1 = os.path.join(tmpdir, 'file1')
921 file2 = os.path.join(tmpdir, 'file2')
932 old_chflags = os.chflags
935 os.chflags = make_chflags_raiser(err)
938 os.chflags = make_chflags_raiser(errno.EOPNOTSUPP + errno.ENOTSUP)
941 os.chflags = old_chflags
948 src = os.path.join(tmp_dir, 'foo')
950 dst = os.path.join(tmp_dir, 'bar')
956 os.setxattr(src, 'user.foo', b'42')
957 os.setxattr(src, 'user.bar', b'43')
959 self.assertEqual(sorted(os.listxattr(src)), sorted(os.listxattr(dst)))
961 os.getxattr(src, 'user.foo'),
962 os.getxattr(dst, 'user.foo'))
964 os.remove(dst)
974 orig_setxattr = os.setxattr
975 os.setxattr = _raise_on_user_foo
977 self.assertIn('user.bar', os.listxattr(dst))
979 os.setxattr = orig_setxattr
986 orig_listxattr = os.listxattr
987 os.listxattr = _raise_on_src
990 os.listxattr = orig_listxattr
993 src = os.path.join(tmp_dir, 'the_original')
994 srcro = os.path.join(tmp_dir, 'the_original_ro')
997 os.setxattr(src, 'user.the_value', b'fiddly')
998 os.setxattr(srcro, 'user.the_value', b'fiddly')
999 os.chmod(srcro, 0o444)
1000 dst = os.path.join(tmp_dir, 'the_copy')
1001 dstro = os.path.join(tmp_dir, 'the_copy_ro')
1006 self.assertEqual(os.getxattr(dst, 'user.the_value'), b'fiddly')
1007 self.assertEqual(os.getxattr(dstro, 'user.the_value'), b'fiddly')
1011 @unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0,
1018 src = os.path.join(tmp_dir, 'foo')
1019 src_link = os.path.join(tmp_dir, 'baz')
1021 os.symlink(src, src_link)
1022 os.setxattr(src, 'trusted.foo', b'42')
1023 os.setxattr(src_link, 'trusted.foo', b'43', follow_symlinks=False)
1024 dst = os.path.join(tmp_dir, 'bar')
1025 dst_link = os.path.join(tmp_dir, 'qux')
1027 os.symlink(dst, dst_link)
1029 self.assertEqual(os.getxattr(dst_link, 'trusted.foo', follow_symlinks=False), b'43')
1030 self.assertRaises(OSError, os.getxattr, dst, 'trusted.foo')
1032 self.assertEqual(os.getxattr(dst, 'trusted.foo'), b'43')
1040 file1 = os.path.join(tmpdir, fname)
1043 file2 = os.path.join(tmpdir2, fname)
1049 self.assertTrue(os.path.exists(file2))
1050 self.assertEqual(os.stat(file1).st_mode, os.stat(file2).st_mode)
1055 src = os.path.join(tmp_dir, 'foo')
1056 dst = os.path.join(tmp_dir, 'bar')
1057 src_link = os.path.join(tmp_dir, 'baz')
1059 os.symlink(src, src_link)
1060 if hasattr(os, 'lchmod'):
1061 os.lchmod(src_link, stat.S_IRWXU | stat.S_IRWXO)
1064 self.assertFalse(os.path.islink(dst))
1066 os.remove(dst)
1069 self.assertTrue(os.path.islink(dst))
1070 self.assertEqual(os.readlink(dst), os.readlink(src_link))
1071 if hasattr(os, 'lchmod'):
1072 self.assertEqual(os.lstat(src_link).st_mode,
1073 os.lstat(dst).st_mode)
1077 @unittest.skipUnless(hasattr(os, 'utime'), 'requires os.utime')
1082 self.assertTrue(os.path.exists(file2))
1083 file1_stat = os.stat(file1)
1084 file2_stat = os.stat(file2)
1090 if hasattr(os, 'chflags') and hasattr(file1_stat, 'st_flags'):
1097 src = os.path.join(tmp_dir, 'foo')
1098 dst = os.path.join(tmp_dir, 'bar')
1099 src_link = os.path.join(tmp_dir, 'baz')
1101 os.symlink(src, src_link)
1102 if hasattr(os, 'lchmod'):
1103 os.lchmod(src_link, stat.S_IRWXU | stat.S_IRWXO)
1104 if hasattr(os, 'lchflags') and hasattr(stat, 'UF_NODUMP'):
1105 os.lchflags(src_link, stat.UF_NODUMP)
1106 src_stat = os.stat(src)
1107 src_link_stat = os.lstat(src_link)
1110 self.assertFalse(os.path.islink(dst))
1112 os.remove(dst)
1115 self.assertTrue(os.path.islink(dst))
1116 self.assertEqual(os.readlink(dst), os.readlink(src_link))
1117 dst_stat = os.lstat(dst)
1118 if os.utime in os.supports_follow_symlinks:
1123 if hasattr(os, 'lchmod'):
1126 if hasattr(os, 'lchflags') and hasattr(src_link_stat, 'st_flags'):
1132 src = os.path.join(tmp_dir, 'foo')
1133 dst = os.path.join(tmp_dir, 'bar')
1135 os.setxattr(src, 'user.foo', b'42')
1138 os.getxattr(src, 'user.foo'),
1139 os.getxattr(dst, 'user.foo'))
1140 os.remove(dst)
1147 src = os.path.join(src_dir, 'foo')
1150 self.assertEqual(rv, os.path.join(dst_dir, 'foo'))
1151 rv = fn(src, os.path.join(dst_dir, 'bar'))
1152 self.assertEqual(rv, os.path.join(dst_dir, 'bar'))
1162 src_file = os.path.join(src_dir, 'foo')
1164 dst = os.path.join(src_dir, 'does_not_exist/')
1181 src = os.path.join(tmp_dir, 'src')
1182 dst = os.path.join(tmp_dir, 'dst')
1183 dst_link = os.path.join(tmp_dir, 'dst_link')
1184 link = os.path.join(tmp_dir, 'link')
1186 os.symlink(src, link)
1189 self.assertTrue(os.path.islink(dst_link))
1190 self.assertEqual(os.readlink(link), os.readlink(dst_link))
1193 self.assertFalse(os.path.islink(dst))
1195 @unittest.skipUnless(hasattr(os, 'link'), 'requires os.link')
1198 os.mkdir(TESTFN)
1199 src = os.path.join(TESTFN, 'cheese')
1200 dst = os.path.join(TESTFN, 'shop')
1205 os.link(src, dst)
1207 self.skipTest('os.link(): %s' % e)
1211 os.remove(dst)
1218 os.mkdir(TESTFN)
1219 src = os.path.join(TESTFN, 'cheese')
1220 dst = os.path.join(TESTFN, 'shop')
1227 os.symlink('cheese', dst)
1231 os.remove(dst)
1236 @unittest.skipUnless(hasattr(os, "mkfifo"), 'requires os.mkfifo()')
1241 os.mkfifo(TESTFN)
1243 self.skipTest('os.mkfifo(): %s' % e)
1250 os.remove(TESTFN)
1256 dst_file = os.path.join(dst_dir, 'bar')
1257 src_file = os.path.join(src_dir, 'foo')
1260 self.assertTrue(os.path.exists(rv))
1267 src_file = os.path.join(src_dir, 'foo')
1279 src_file = os.path.join(src_dir, 'foo')
1280 dst = os.path.join(src_dir, 'does_not_exist/')
1289 src_file = os.path.join(src_dir, 'foo')
1291 dst = os.path.join(src_dir, 'does_not_exist/')
1314 os.rmdir(tmpdir2)
1316 work_dir = os.path.dirname(tmpdir2)
1317 rel_base_name = os.path.join(os.path.basename(tmpdir2), 'archive')
1320 base_name = os.path.abspath(rel_base_name)
1325 self.assertTrue(os.path.isfile(tarball))
1336 self.assertTrue(os.path.isfile(tarball))
1352 dist = os.path.join(root_dir, base_dir)
1353 os.makedirs(dist, exist_ok=True)
1356 os.mkdir(os.path.join(dist, 'sub'))
1358 os.mkdir(os.path.join(dist, 'sub2'))
1368 base_name = os.path.join(self.mkdtemp(), 'archive')
1373 self.assertTrue(os.path.isfile(tarball))
1376 tarball2 = os.path.join(root_dir, 'archive2.tar')
1381 self.assertTrue(os.path.isfile(tarball2))
1388 self.assertTrue(os.path.isfile(tarball))
1394 self.assertTrue(os.path.isfile(tarball))
1403 os.rmdir(tmpdir2)
1405 work_dir = os.path.dirname(tmpdir2)
1406 rel_base_name = os.path.join(os.path.basename(tmpdir2), 'archive')
1409 base_name = os.path.abspath(rel_base_name)
1413 self.assertTrue(os.path.isfile(res))
1422 base_name = os.path.abspath(rel_base_name)
1426 self.assertTrue(os.path.isfile(res))
1438 base_name = os.path.join(self.mkdtemp(), 'archive')
1443 self.assertTrue(os.path.isfile(archive))
1446 archive2 = os.path.join(root_dir, 'archive2.zip')
1451 self.assertTrue(os.path.isfile(archive2))
1464 base_name = os.path.join(self.mkdtemp(), 'archive')
1469 self.assertTrue(os.path.isfile(archive))
1485 base_name = os.path.join(tmpdir, 'archive')
1499 base_name = os.path.join(self.mkdtemp(), 'archive')
1502 self.assertTrue(os.path.isfile(res))
1505 self.assertTrue(os.path.isfile(res))
1509 self.assertTrue(os.path.isfile(res))
1513 self.assertTrue(os.path.isfile(res))
1520 base_name = os.path.join(self.mkdtemp(), 'archive')
1528 self.assertTrue(os.path.isfile(archive_name))
1540 current_dir = os.getcwd()
1550 self.assertEqual(os.getcwd(), current_dir)
1559 self.assertTrue(os.path.isfile('test.tar'))
1567 self.assertTrue(os.path.isfile('test.zip'))
1597 base_name = os.path.join(self.mkdtemp(), 'archive')
1665 usage = shutil.disk_usage(os.path.dirname(__file__))
1678 @unittest.skipUnless(hasattr(os, 'chown'), 'requires os.chown')
1699 uid = os.getuid()
1700 gid = os.getgid()
1703 s = os.stat(filename)
1749 os.chmod(self.temp_file.name, stat.S_IXUSR)
1751 self.dir, self.file = os.path.split(self.temp_file.name)
1753 self.curdir = os.curdir
1770 base_dir, tail_dir = os.path.split(self.dir)
1771 relpath = os.path.join(tail_dir, self.file)
1782 base_dir = os.path.dirname(self.dir)
1787 self.assertEqual(rv, os.path.join(self.curdir, self.file))
1792 @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0,
1796 os.chmod(self.temp_file.name, stat.S_IREAD)
1797 if os.access(self.temp_file.name, os.W_OK):
1799 rv = shutil.which(self.file, path=self.dir, mode=os.W_OK)
1803 base_dir, tail_dir = os.path.split(self.dir)
1806 self.assertEqual(rv, os.path.join(tail_dir, self.file))
1831 with unittest.mock.patch('os.confstr', return_value=self.dir, \
1833 support.swap_attr(os, 'defpath', self.dir), \
1839 expected_cwd = os.path.basename(self.temp_file.name)
1841 curdir = os.curdir
1843 curdir = os.fsencode(curdir)
1844 expected_cwd = os.path.join(curdir, expected_cwd)
1848 env['PATH'] = os.pathsep
1849 with unittest.mock.patch('os.confstr', return_value=self.dir, \
1851 support.swap_attr(os, 'defpath', self.dir):
1865 with unittest.mock.patch('os.confstr', side_effect=ValueError, \
1867 support.swap_attr(os, 'defpath', self.dir):
1872 with unittest.mock.patch('os.confstr', return_value=self.dir, \
1874 support.swap_attr(os, 'defpath', ''):
1879 base_dir = os.path.dirname(self.dir)
1897 os.chmod(temp_filexyz.name, stat.S_IXUSR)
1901 program = os.path.basename(temp_filexyz.name)
1902 program = os.path.splitext(program)[0]
1918 program = os.path.basename(temp_filexyz.name)
1919 program = os.path.splitext(program)[0]
1930 self.dir = os.fsencode(self.dir)
1931 self.file = os.fsencode(self.file)
1932 self.temp_file.name = os.fsencode(self.temp_file.name)
1933 self.curdir = os.fsencode(self.curdir)
1934 self.ext = os.fsencode(self.ext)
1943 self.src_file = os.path.join(self.src_dir, filename)
1944 self.dst_file = os.path.join(self.dst_dir, filename)
1954 self.assertFalse(os.path.exists(src))
1957 contents = sorted(os.listdir(src))
1959 self.assertEqual(contents, sorted(os.listdir(real_dst)))
1960 self.assertFalse(os.path.exists(src))
2006 os.path.join(self.dst_dir, os.path.basename(self.src_dir)))
2014 self._check_move_dir(self.src_dir + os.path.sep, self.dst_dir,
2015 os.path.join(self.dst_dir, os.path.basename(self.src_dir)))
2017 @unittest.skipUnless(os.path.altsep, 'requires os.path.altsep')
2019 self._check_move_dir(self.src_dir + os.path.altsep, self.dst_dir,
2020 os.path.join(self.dst_dir, os.path.basename(self.src_dir)))
2030 dst = os.path.join(self.src_dir, "bar")
2034 os.mkdir(TESTFN)
2037 src = os.path.join(TESTFN, src)
2038 dst = os.path.join(TESTFN, dst)
2046 os.mkdir(TESTFN)
2049 src = os.path.join(TESTFN, src)
2050 dst = os.path.join(TESTFN, dst)
2060 dst = os.path.join(self.src_dir, 'bar')
2061 os.symlink(self.src_file, dst)
2063 self.assertTrue(os.path.islink(self.dst_file))
2064 self.assertTrue(os.path.samefile(self.src_file, self.dst_file))
2070 dst = os.path.join(self.src_dir, filename)
2071 os.symlink(self.src_file, dst)
2073 final_link = os.path.join(self.dst_dir, filename)
2074 self.assertTrue(os.path.islink(final_link))
2075 self.assertTrue(os.path.samefile(self.src_file, final_link))
2080 src = os.path.join(self.src_dir, 'baz')
2081 dst = os.path.join(self.src_dir, 'bar')
2082 os.symlink(src, dst)
2083 dst_link = os.path.join(self.dst_dir, 'quux')
2085 self.assertTrue(os.path.islink(dst_link))
2086 self.assertEqual(os.path.realpath(src), os.path.realpath(dst_link))
2091 src = os.path.join(self.src_dir, 'baz')
2092 dst = os.path.join(self.src_dir, 'bar')
2093 os.mkdir(src)
2094 os.symlink(src, dst)
2095 dst_link = os.path.join(self.dst_dir, 'quux')
2097 self.assertTrue(os.path.islink(dst_link))
2098 self.assertTrue(os.path.samefile(src, dst_link))
2103 os.path.join(self.dst_dir, os.path.basename(self.src_file)))
2106 rv = shutil.move(self.src_file, os.path.join(self.dst_dir, 'bar'))
2107 self.assertEqual(rv, os.path.join(self.dst_dir, 'bar'))
2122 os_helper.create_empty_file(os.path.join(self.src_dir, 'child'))
2123 os_helper.create_empty_file(os.path.join(self.src_dir, 'child1'))
2132 dst_dir = os.path.join(
2133 os.path.dirname(self.src_dir),
2134 os.path.basename(self.src_dir).upper())
2139 self.assertTrue(os.path.isdir(dst_dir))
2141 os.rmdir(dst_dir)
2144 @unittest.skipUnless(hasattr(os, 'geteuid') and os.geteuid() == 0
2145 and hasattr(os, 'lchflags')
2153 os.mkdir(TESTFN_SRC)
2154 os.lchflags(TESTFN_SRC, stat.SF_IMMUTABLE)
2159 self.assertFalse(TESTFN_DST in os.listdir())
2162 os.lchflags(TESTFN_SRC, stat.UF_OPAQUE)
2163 os_helper.create_empty_file(os.path.join(TESTFN_SRC, 'child'))
2164 os.lchflags(TESTFN_SRC, stat.SF_IMMUTABLE)
2169 self.assertFalse(TESTFN_DST in os.listdir())
2171 if os.path.exists(TESTFN_SRC):
2172 os.lchflags(TESTFN_SRC, stat.UF_OPAQUE)
2174 if os.path.exists(TESTFN_DST):
2175 os.lchflags(TESTFN_DST, stat.UF_OPAQUE)
2314 @unittest.skipIf(os.name != 'nt', "Windows only")
2326 with tempfile.NamedTemporaryFile(dir=os.getcwd(), delete=False) as f:
2335 with tempfile.NamedTemporaryFile(dir=os.getcwd(), delete=False) as f:
2401 name = tempfile.mktemp(dir=os.getcwd())
2445 @unittest.skipIf(not SUPPORTS_SENDFILE, 'os.sendfile() not supported')
2447 PATCHPOINT = "os.sendfile"
2479 orig_sendfile = os.sendfile
2480 with unittest.mock.patch('os.sendfile', create=True,
2492 with unittest.mock.patch('os.fstat', side_effect=OSError) as m:
2505 with unittest.mock.patch('os.fstat', return_value=mock) as m:
2518 with unittest.mock.patch('os.fstat', return_value=mock) as m:
2525 with unittest.mock.patch('os.sendfile',
2532 self.assertEqual(blocksize, os.path.getsize(TESTFN))
2606 @unittest.skipUnless(os.isatty(sys.__stdout__.fileno()), "not on tty")
2607 @unittest.skipUnless(hasattr(os, 'get_terminal_size'),
2608 'need os.get_terminal_size()')
2643 with open(os.devnull, 'w', encoding='utf-8') as f, \
2663 if hasattr(os, 'statvfs') or os.name == 'nt':