diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-06-27 21:52:03 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-06-27 21:52:03 (GMT) |
commit | 4d4c69dc35154a9c21fed1b6b4088e741fbc6ae6 (patch) | |
tree | f4ca0640823595c1beca048f262ee5035166ec14 /Lib/test/test_asyncore.py | |
parent | 252d40ef1ee627148ae12ab9cbf812cfeeb27655 (diff) | |
download | cpython-4d4c69dc35154a9c21fed1b6b4088e741fbc6ae6.zip cpython-4d4c69dc35154a9c21fed1b6b4088e741fbc6ae6.tar.gz cpython-4d4c69dc35154a9c21fed1b6b4088e741fbc6ae6.tar.bz2 |
Issue #11453: asyncore: emit a ResourceWarning when an unclosed file_wrapper
object is destroyed. The destructor now closes the file if needed. The close()
method can now be called twice: the second call does nothing.
Diffstat (limited to 'Lib/test/test_asyncore.py')
-rw-r--r-- | Lib/test/test_asyncore.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py index 7defe65..6cfe580 100644 --- a/Lib/test/test_asyncore.py +++ b/Lib/test/test_asyncore.py @@ -436,6 +436,22 @@ class FileWrapperTest(unittest.TestCase): asyncore.loop(timeout=0.01, use_poll=True, count=2) self.assertEqual(b"".join(data), self.d) + def test_resource_warning(self): + # Issue #11453 + fd = os.open(support.TESTFN, os.O_RDONLY) + f = asyncore.file_wrapper(fd) + with support.check_warnings(('', ResourceWarning)): + f = None + support.gc_collect() + + def test_close_twice(self): + fd = os.open(support.TESTFN, os.O_RDONLY) + f = asyncore.file_wrapper(fd) + f.close() + self.assertEqual(f.fd, -1) + # calling close twice should not fail + f.close() + class BaseTestHandler(asyncore.dispatcher): |