Commit d662548c authored by Martin v. Löwis's avatar Martin v. Löwis

Patch #810914: Return absolute path for mkstemp. Fixes #810408.

This should not be backported to 2.3, as it might break backwards
compatibility.
parent 411c6023
......@@ -214,7 +214,7 @@ def _mkstemp_inner(dir, pre, suf, flags):
try:
fd = _os.open(file, flags, 0600)
_set_cloexec(fd)
return (fd, file)
return (fd, _os.path.abspath(file))
except OSError, e:
if e.errno == _errno.EEXIST:
continue # try again
......
......@@ -49,7 +49,8 @@ class TC(unittest.TestCase):
npre = nbase[:len(pre)]
nsuf = nbase[len(nbase)-len(suf):]
self.assertEqual(ndir, dir,
# check for equality of the absolute paths!
self.assertEqual(os.path.abspath(ndir), os.path.abspath(dir),
"file '%s' not in directory '%s'" % (name, dir))
self.assertEqual(npre, pre,
"file '%s' does not begin with '%s'" % (nbase, pre))
......@@ -384,6 +385,10 @@ class test_mkstemp(TC):
dir = tempfile.gettempdir()
try:
(fd, name) = tempfile.mkstemp(dir=dir, prefix=pre, suffix=suf)
(ndir, nbase) = os.path.split(name)
adir = os.path.abspath(dir)
self.assertEqual(adir, ndir,
"Directory '%s' incorrectly returned as '%s'" % (adir, ndir))
except:
self.failOnException("mkstemp")
......@@ -400,6 +405,7 @@ class test_mkstemp(TC):
self.do_create(suf="b")
self.do_create(pre="a", suf="b")
self.do_create(pre="aa", suf=".txt")
self.do_create(dir=".")
def test_choose_directory(self):
# mkstemp can create directories in a user-selected directory
......
......@@ -55,6 +55,8 @@ Extension modules
Library
-------
- tmpfile.mkstemp now returns an absolute path even if dir is relative.
- urlparse is RFC 2396 compliant.
- The fieldnames argument to the csv module's DictReader constructor is now
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment