[pypy-commit] pypy py3.5: os.truncate("foo") would create the file foo if it did not exist---that's very wrong
arigo
pypy.commits at gmail.com
Wed Dec 7 08:57:27 EST 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: py3.5
Changeset: r88940:29076a1f34c6
Date: 2016-12-07 14:56 +0100
http://bitbucket.org/pypy/pypy/changeset/29076a1f34c6/
Log: os.truncate("foo") would create the file foo if it did not exist---
that's very wrong
diff --git a/pypy/module/posix/interp_posix.py b/pypy/module/posix/interp_posix.py
--- a/pypy/module/posix/interp_posix.py
+++ b/pypy/module/posix/interp_posix.py
@@ -325,7 +325,7 @@
if space.isinstance_w(w_path, space.w_int):
w_fd = w_path
else:
- w_fd = open(space, w_path, os.O_RDWR | os.O_CREAT)
+ w_fd = open(space, w_path, os.O_WRONLY)
allocated_fd = True
fd = space.c_filedescriptor_w(w_fd)
diff --git a/pypy/module/posix/test/test_posix2.py b/pypy/module/posix/test/test_posix2.py
--- a/pypy/module/posix/test/test_posix2.py
+++ b/pypy/module/posix/test/test_posix2.py
@@ -1067,6 +1067,10 @@
posix.truncate(dest, 1)
assert 1 == posix.stat(dest).st_size
+ # File does not exist
+ e = raises(OSError, posix.truncate, dest + '-DOESNT-EXIST', 0)
+ assert e.value.filename == dest + '-DOESNT-EXIST'
+
try:
os.getlogin()
except (AttributeError, OSError):
More information about the pypy-commit
mailing list