Fixed issue #4233.
Changed semantic of _fileio.FileIO's close()  method on file objects with closefd=False. The file descriptor is still kept open but the file object behaves like a closed file. The FileIO  object also got a new readonly attribute closefd.
Approved by Barry
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index f28bade..1f0295c 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -272,6 +272,29 @@
         self.assertRaises(ValueError, io.open, support.TESTFN, 'w',
                           closefd=False)
 
+    def testReadClosed(self):
+        with io.open(support.TESTFN, "w") as f:
+            f.write("egg\n")
+        with io.open(support.TESTFN, "r") as f:
+            file = io.open(f.fileno(), "r", closefd=False)
+            self.assertEqual(file.read(), "egg\n")
+            file.seek(0)
+            file.close()
+            self.assertRaises(ValueError, file.read)
+
+    def test_no_closefd_with_filename(self):
+        # can't use closefd in combination with a file name
+        self.assertRaises(ValueError, io.open, support.TESTFN, "r", closefd=False)
+
+    def test_closefd_attr(self):
+        with io.open(support.TESTFN, "wb") as f:
+            f.write(b"egg\n")
+        with io.open(support.TESTFN, "r") as f:
+            self.assertEqual(f.buffer.raw.closefd, True)
+            file = io.open(f.fileno(), "r", closefd=False)
+            self.assertEqual(file.buffer.raw.closefd, False)
+
+
 class MemorySeekTestMixin:
 
     def testInit(self):
@@ -1237,15 +1260,6 @@
             else:
                 self.assert_(issubclass(obj, io.IOBase))
 
-    def test_fileio_warnings(self):
-        with support.check_warnings() as w:
-            self.assertEqual(w.warnings, [])
-            self.assertRaises(TypeError, io.FileIO, [])
-            self.assertEqual(w.warnings, [])
-            self.assertRaises(ValueError, io.FileIO, "/some/invalid/name", "rt")
-            self.assertEqual(w.warnings, [])
-
-
 def test_main():
     support.run_unittest(IOTest, BytesIOTest, StringIOTest,
                               BufferedReaderTest, BufferedWriterTest,