homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author trent
Recipients benjamin.peterson, christian.heimes, trent
Date 2008年03月05日.22:45:30
SpamBayes Score 0.0012547999
Marked as misclassified No
Message-id <1204757132.74.0.370770632009.issue2232@psf.upfronthosting.co.za>
In-reply-to
Content
I agree. Following patch fixes the issue for me:
Index: test_os.py
===================================================================
--- test_os.py (revision 61260)
+++ test_os.py (working copy)
@@ -65,6 +65,44 @@
 def test_tmpfile(self):
 if not hasattr(os, "tmpfile"):
 return
+ # As with test_tmpnam() below, the Windows implementation of 
tmpfile()
+ # attempts to create a file in the root directory of the 
current drive.
+ # On Vista and Server 2008, this test will always fail for 
normal users
+ # as writing to the root directory requires elevated 
privileges. With
+ # XP and below, the semantics of tmpfile() are the same, but 
the user
+ # running the test is more likely to have administrative 
privileges on
+ # their account already. If that's the case, then os.tmpfile
() should
+ # work. In order to make this test as useful as possible, 
rather than
+ # trying to detect Windows versions or whether or not the user 
has the
+ # right permissions, just try and create a file in the root 
directory
+ # and see if it raises a 'Permission denied' OSError. If it 
does, then
+ # test that a subsequent call to os.tmpfile() raises the same 
error. If
+ # it doesn't, assume we're on XP or below and the user running 
the test
+ # has administrative privileges, and proceed with the test as 
normal.
+ if sys.platform == 'win32':
+ name = '\\python_test_os_test_tmpfile.txt'
+ if os.path.exists(name):
+ os.remove(name)
+ try:
+ fp = open(name, 'w')
+ except IOError, first:
+ # open() failed, assert tmpfile() fails in the same 
way.
+ # Although open() raises an IOError and os.tmpfile() 
raises an
+ # OSError(), 'args' will be (12, 'Permission denied') 
in both
+ # cases.
+ try:
+ fp = os.tmpfile()
+ except OSError, second:
+ self.assertEqual(first.args, second.args)
+ else:
+ self.fail("expected os.tmpfile() to raise OSError")
+ return
+ else:
+ # open() worked, therefore, tmpfile() should work. 
Close our
+ # dummy file and proceed with the test as normal.
+ fp.close()
+ os.remove(name)
+
 fp = os.tmpfile()
 fp.write("foobar")
 fp.seek(0,0)
History
Date User Action Args
2008年03月05日 22:45:32trentsetspambayes_score: 0.0012548 -> 0.0012547999
recipients: + trent, christian.heimes, benjamin.peterson
2008年03月05日 22:45:32trentsetspambayes_score: 0.0012548 -> 0.0012548
messageid: <1204757132.74.0.370770632009.issue2232@psf.upfronthosting.co.za>
2008年03月05日 22:45:31trentlinkissue2232 messages
2008年03月05日 22:45:31trentcreate

AltStyle によって変換されたページ (->オリジナル) /