From 6efd8493f8b491557a34dbbc176565b759f89b52 Mon Sep 17 00:00:00 2001 From: Olivier Grisel Date: Thu, 26 Jun 2014 14:49:59 +0200 Subject: FIX isfileobj accepts write-mode files under PY3 --- numpy/compat/py3k.py | 2 +- numpy/compat/tests/test_compat.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 numpy/compat/tests/test_compat.py (limited to 'numpy/compat') diff --git a/numpy/compat/py3k.py b/numpy/compat/py3k.py index f5ac3f9f8..4607d9502 100644 --- a/numpy/compat/py3k.py +++ b/numpy/compat/py3k.py @@ -36,7 +36,7 @@ if sys.version_info[0] >= 3: return str(s) def isfileobj(f): - return isinstance(f, (io.FileIO, io.BufferedReader)) + return isinstance(f, (io.FileIO, io.BufferedReader, io.BufferedWriter)) def open_latin1(filename, mode='r'): return open(filename, mode=mode, encoding='iso-8859-1') diff --git a/numpy/compat/tests/test_compat.py b/numpy/compat/tests/test_compat.py new file mode 100644 index 000000000..3df142e04 --- /dev/null +++ b/numpy/compat/tests/test_compat.py @@ -0,0 +1,19 @@ +from os.path import join + +from numpy.compat import isfileobj +from numpy.testing import TestCase, assert_ +from numpy.testing.utils import tempdir + + +def test_isfileobj(): + with tempdir(prefix="numpy_test_compat_") as folder: + filename = join(folder, 'a.bin') + + with open(filename, 'wb') as f: + assert_(isfileobj(f)) + + with open(filename, 'ab') as f: + assert_(isfileobj(f)) + + with open(filename, 'rb') as f: + assert_(isfileobj(f)) -- cgit v1.2.1