diff --git a/Lib/test/test_optparse.py b/Lib/test/test_optparse.py index 3c8c6124a25..7621c243055 100644 --- a/Lib/test/test_optparse.py +++ b/Lib/test/test_optparse.py @@ -395,6 +395,7 @@ def test_remove_nonexistent(self): self.assertRaises(self.parser.remove_option, ('foo',), None, ValueError, "no such option 'foo'") + @support.impl_detail('Relies on sys.getrefcount', cpython=True) def test_refleak(self): # If an OptionParser is carrying around a reference to a large # object, various cycles can prevent it from being GC'd in diff --git a/Modules/_io/iobase.c b/Modules/_io/iobase.c index e3729902d88..ef06b43ca6e 100644 --- a/Modules/_io/iobase.c +++ b/Modules/_io/iobase.c @@ -42,8 +42,8 @@ PyDoc_STRVAR(iobase_doc, "bytes. bytearrays are accepted too, and in some cases (such as\n" "readinto) needed. Text I/O classes work with str data.\n" "\n" - "Note that calling any method (even inquiries) on a closed stream is\n" - "undefined. Implementations may raise IOError in this case.\n" + "Note that calling any method (except additional calls to close(),\n" + "which are ignored) on a closed stream should raise a ValueError.\n" "\n" "IOBase (and its subclasses) support the iterator protocol, meaning\n" "that an IOBase object can be iterated over yielding the lines in a\n"