[Python-checkins] python/dist/src/Lib tempfile.py,1.47,1.48

jlt63@users.sourceforge.net jlt63@users.sourceforge.net
Wed, 14 Aug 2002 08:10:11 -0700


Update of /cvsroot/python/python/dist/src/Lib
In directory usw-pr-cvs1:/tmp/cvs-serv4384

Modified Files:
	tempfile.py 
Log Message:
Patch #595014: Cygwin tempfile patch

Although Cygwin attempts to be as Posix compliant
as possible, it has difficulties unlinking open
files. This is not surprising given that Cygwin is
dependent on Win32 which in turn has this problem
itself.

The attached tempfile patch acknowledges this
Cygwin limitation. Without this patch, Cygwin
fails test_tempfile (i.e., test_has_no_name) as
follows:

$ ./python -E -tt ../Lib/test/regrtest.py -l test_tempfile
test_tempfile
test test_tempfile failed -- Traceback (most recent call last):
  File "/home/jt/src/PythonCvs/Lib/test/test_tempfile.py", line 689, in test_has_no_name
    self.failOnException("rmdir", ei)
  File "/home/jt/src/PythonCvs/Lib/test/test_tempfile.py", line 33, in failOnException
    self.fail("%s raised %s: %s" % (what, ei[0], ei[1]))
  File "/home/jt/src/PythonCvs/Lib/unittest.py", line 260, in fail
    raise self.failureException, msg
AssertionError: rmdir raised exceptions.OSError: [Errno 90] Directory not empty: '/mnt/c/DOCUME~1/jatis/LOCALS~1/Temp/tmpM_z8nj'


Index: tempfile.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/tempfile.py,v
retrieving revision 1.47
retrieving revision 1.48
diff -C2 -d -r1.47 -r1.48
*** tempfile.py	14 Aug 2002 00:49:50 -0000	1.47
--- tempfile.py	14 Aug 2002 15:10:09 -0000	1.48
***************
*** 411,417 ****
      return _TemporaryFileWrapper(file, name)
  
! if _os.name != 'posix':
!     # On non-POSIX systems, assume that we cannot unlink a file while
!     # it is open.
      TemporaryFile = NamedTemporaryFile
  
--- 411,417 ----
      return _TemporaryFileWrapper(file, name)
  
! if _os.name != 'posix' or _os.sys.platform == 'cygwin':
!     # On non-POSIX and Cygwin systems, assume that we cannot unlink a file
!     # while it is open.
      TemporaryFile = NamedTemporaryFile