Commit graph

180 commits

Author SHA1 Message Date
Ned Deily
5fddf866d8 Issue #14662: Prevent shutil failures on OS X when destination does not
support chflag operations.  (Patch by Hynek Schlawack)
2012-05-10 17:21:23 -07:00
Senthil Kumaran
0c2dba5726 Fix closes issue issue12470 - check for utime for the skipUnless condition. 2011-07-03 18:21:38 -07:00
Ronald Oussoren
78349b06af merge from 3.1 2011-05-06 10:57:22 +02:00
Ronald Oussoren
f51738b10e Fix for issue 10684: Folders get deleted when trying to change case with shutil.move (case insensitive file systems only) 2011-05-06 10:23:04 +02:00
Nick Coghlan
8ed3cf3a4b Close #11560: Improve test coverage of shutil 2011-03-16 14:05:35 -04:00
Nick Coghlan
abf202d798 Close #11548: Correctly handle format argument in shutil.unpack_archive 2011-03-16 13:52:20 -04:00
Brian Curtin
3b4499c5c7 Fix #9333. The symlink function is always available now, raising OSError
when the user doesn't hold the symbolic link privilege rather than hiding it.
2010-12-28 14:31:47 +00:00
Georg Brandl
724d0895e8 Temporarily disable newly failing test for the release. 2010-12-05 07:51:39 +00:00
Hirokazu Yamamoto
2668145dbd Now can reproduce the error on AMD64 Windows Server 2008
even where os.symlink is not supported.
2010-12-05 02:04:16 +00:00
Brian Curtin
52173d4959 Fix #9333. Expose os.symlink on Windows only when usable.
In order to create symlinks on Windows, SeCreateSymbolicLinkPrivilege
is an account privilege that is required to be held by the user. Not only
must the privilege be enabled for the account, the activated privileges for
the currently running application must be adjusted to enable the requested
privilege.

Rather than exposing an additional function to be called prior to the user's
first os.symlink call, we handle the AdjustTokenPrivileges Windows API call
internally and only expose os.symlink when the privilege escalation was
successful.

Due to the change of only exposing os.symlink when it's available, we can
go back to the original test skipping methods of checking via `hasattr`.
2010-12-02 18:29:18 +00:00
Nick Coghlan
5b0eca116a Issue #4489: Rename the feature marker for the symlink resistant rmtree and store it as a function attribute 2012-06-24 16:43:06 +10:00
Antoine Pitrou
4f6e3f74fc Avoid depending on directory iteration order in test_shutil 2012-06-23 22:05:11 +02:00
Antoine Pitrou
f3a166d799 Add debug output to test_shutil 2012-06-23 21:32:36 +02:00
Antoine Pitrou
2f8a75c7a7 Proper cleanup in test_shutil, even in case of error. 2012-06-23 21:28:15 +02:00
Hynek Schlawack
2100b42317 #4489: Fix usage of fd-based functions to new api introduced earlier today
Also add an explicit test for safe implementation usage on supported platforms.

As a side effect, this commit adds a module-level attribute 'rmtree_is_safe'
which offers introspection whether the current rmtree implementation is safe
against symlink attacks.
2012-06-23 20:28:32 +02:00
Hynek Schlawack
67be92bed4 #4489: Add a shutil.rmtree that isn't suspectible to symlink attacks
It is used automatically on platforms supporting the necessary os.openat() and
os.unlinkat() functions. Main code by Martin von Löwis.
2012-06-23 17:58:42 +02:00
Larry Hastings
90867a5aba Issue #14626: Fix buildbot issues on FreeBSD (AMD64). (Fingers crossed.) 2012-06-22 17:01:41 -07:00
Larry Hastings
9cf065cfdc Issue #14626: Large refactoring of functions / parameters in the os module.
Many functions now support "dir_fd" and "follow_symlinks" parameters;
some also support accepting an open file descriptor in place of of a path
string.  Added os.support_* collections as LBYL helpers.  Removed many
functions only previously seen in 3.3 alpha releases (often starting with
"f" or "l", or ending with "at").  Originally suggested by Serhiy Storchaka;
implemented by Larry Hastings.
2012-06-22 16:30:09 -07:00
Antoine Pitrou
07c24d13ed Issue #444582: shutil.which() respects relative paths. 2012-06-22 23:33:05 +02:00
Brian Curtin
c57a34577c Fix #444582. Add shutil.which function for finding programs on the system path. 2012-06-22 16:00:30 -05:00
Brian Curtin
0d0a1dedbc Fix #14772: Return the destination from some shutil functions. 2012-06-18 18:41:07 -05:00
Antoine Pitrou
61597d3e92 Try to fix test_shutil failure under Fedora - patch by Hynek. 2012-05-12 23:37:35 +02:00
Antoine Pitrou
424246fbf3 Issue #14082: shutil.copy2() now copies extended attributes, if possible.
Patch by Hynek Schlawack.
2012-05-12 19:02:01 +02:00
Ned Deily
baf75713c7 Issue #14662: Prevent shutil failures on OS X when destination does not
support chflag operations.  (Patch by Hynek Schlawack)
2012-05-10 17:05:19 -07:00
Antoine Pitrou
cfade36227 Relax tests to fix buildbot failure 2012-02-08 23:48:59 +01:00
Antoine Pitrou
bcf2b59fb5 Issue #13609: Add two functions to query the terminal size:
os.get_terminal_size (low level) and shutil.get_terminal_size (high level).
Patch by Zbigniew Jędrzejewski-Szmek.
2012-02-08 23:28:36 +01:00
Antoine Pitrou
0a08d7a095 Issue #9993: When the source and destination are on different filesystems,
and the source is a symlink, shutil.move() now recreates a symlink on the
destination instead of copying the file contents.
Patch by Jonathan Niehof and Hynek Schlawack.
2012-01-06 20:16:19 +01:00
Antoine Pitrou
c041ab6c7d Mock the rename failure a bit better 2012-01-02 19:18:02 +01:00
Antoine Pitrou
78091e63d6 Issue #12715: Add an optional symlinks argument to shutil functions (copyfile, copymode, copystat, copy, copy2).
When that parameter is true, symlinks aren't dereferenced and the operation
instead acts on the symlink itself (or creates one, if relevant).

Patch by Hynek Schlawack.
2011-12-29 18:54:15 +01:00
Sandro Tosi
91f948a734 #12191: fix build failures, explicitly passing group argument when I want to test it 2011-08-22 23:55:39 +02:00
Sandro Tosi
d902a14dd0 #12191: add shutil.chown() to change user and/or group owner of a given path also specifying their names. 2011-08-22 23:28:27 +02:00
Éric Araujo
a7e33a10ae Clean up test_shutil, to facilitate upcoming improvements (#12721).
The tests now have two convenience functions to wrap os.path.join, open
and read or write instead of four or six slightly different functions.
The new functions accept a tuple of path segments but not a list
anymore, as it makes no sense to use a list here; I have also removed
the default value for the contents in write_file, as I find it better to
have the contents at the call site.

For simple open then read/write calls, I have left the usual idiom (with
open + read/write), as it is short and readable enough.

I’ve also changed some convoluted cleanup code to just use rmtree, and
removed dubious LBYL os.path.exists checks.  The tests still pass on my
machine, and leave no file in $TMP.  test_shutil is not as clean as it
could be, but I’ll stop here.

Initial patch provided by Hynek Schlawack, in preparation for a new
feature with new tests in #12715.
2011-08-12 19:51:35 +02:00
Senthil Kumaran
cc78c443f2 merge from 3.2 2011-07-03 18:22:14 -07:00
Éric Araujo
2ee61884fe Clean up NEWS entry and tests for shutil.disk_usage (#12442) 2011-07-02 16:45:45 +02:00
Giampaolo Rodola'
210e7ca032 Issue #12442: add shutil.disk_usage() 2011-07-01 13:55:36 +02:00
Victor Stinner
bf816223df Issue #12451: Add support.create_empty_file()
We don't need to create a temporary buffered binary or text file object just to
create an empty file.

Replace also os.fdopen(handle).close() by os.close(handle).
2011-06-30 23:25:47 +02:00
Ezio Melotti
975077a889 Refactor a few tests to use the new requires_zlib decorator. 2011-05-19 22:03:22 +03:00
Ezio Melotti
b3aedd4862 #9424: Replace deprecated assert* methods in the Python test suite. 2010-11-20 19:04:17 +00:00
Éric Araujo
1c5054996f Fix one omission in r78359 2010-11-06 02:12:51 +00:00
Antoine Pitrou
ea5d827b72 Merged revisions 85503 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85503 | antoine.pitrou | 2010-10-15 00:11:44 +0200 (ven., 15 oct. 2010) | 2 lines

  More proper closing of files
........
2010-10-14 22:14:36 +00:00
Antoine Pitrou
92f60ed82a More proper closing of files 2010-10-14 22:11:44 +00:00
Brian Curtin
d40e6f70a5 Implement #1578269. Patch by Jason R. Coombs.
Added Windows support for os.symlink when run on Windows 6.0 or greater,
aka Vista. Previous Windows versions will raise NotImplementedError
when trying to symlink.

Includes numerous test updates and additions to test_os, including
a symlink_support module because of the fact that privilege escalation
is required in order to run the tests to ensure that the user is able
to create symlinks. By default, accounts do not have the required
privilege, so the escalation code will have to be exposed later (or
documented on how to do so). I'll be following up with that work next.

Note that the tests use ctypes, which was agreed on during the PyCon
language summit.
2010-07-08 21:39:08 +00:00
Tarek Ziadé
9623980d01 Merged revisions 80833 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80833 | tarek.ziade | 2010-05-06 00:27:31 +0200 (Thu, 06 May 2010) | 9 lines

  Merged revisions 80830 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80830 | tarek.ziade | 2010-05-06 00:15:31 +0200 (Thu, 06 May 2010) | 1 line

    Fixed #4265: shutil.copyfile() was leaking file descriptors when disk fills
  ........
................
2010-05-05 22:39:31 +00:00
Tarek Ziadé
ae4d5c6b64 Merged revisions 80830 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80830 | tarek.ziade | 2010-05-06 00:15:31 +0200 (Thu, 06 May 2010) | 1 line

  Fixed #4265: shutil.copyfile() was leaking file descriptors when disk fills
........
2010-05-05 22:27:31 +00:00
Tarek Ziadé
ffa155ad83 make sure shutil checks for bz2 availability before it uses it. 2010-04-29 13:34:35 +00:00
Tarek Ziadé
6ac91723bd #8295 : Added shutil.unpack_archive and related APIs 2010-04-28 17:51:36 +00:00
Tarek Ziadé
51a6f72d19 make sure os.symlink presence is tested before running some shutil tests -- also refactored the tests to use unittest.skipUnless 2010-04-23 13:03:09 +00:00
Tarek Ziadé
5e2be8737d Merged revisions 80282 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80282 | tarek.ziade | 2010-04-20 23:09:06 +0200 (Tue, 20 Apr 2010) | 1 line

  removed ztar support in shutil.make_archive
........
2010-04-20 21:40:47 +00:00
Tarek Ziadé
fb437513d6 Fixed #6547: Added the ignore_dangling_symlinks option to shutil.copytree 2010-04-20 08:57:33 +00:00
Tarek Ziadé
5340db3803 Fixed #1540112: now shutil.copytree will let you provide your own copy() function 2010-04-19 22:30:51 +00:00