Commit 472f794a authored by Victor Stinner's avatar Victor Stinner Committed by GitHub

bpo-18748: test_io: silence destructor errors (GH-12805)

parent e8f9acf0
...@@ -991,6 +991,9 @@ class IOTest(unittest.TestCase): ...@@ -991,6 +991,9 @@ class IOTest(unittest.TestCase):
# This would cause an assertion failure. # This would cause an assertion failure.
self.assertRaises(OSError, f.close) self.assertRaises(OSError, f.close)
# Silence destructor error
R.flush = lambda self: None
class CIOTest(IOTest): class CIOTest(IOTest):
...@@ -1167,6 +1170,10 @@ class CommonBufferedTests: ...@@ -1167,6 +1170,10 @@ class CommonBufferedTests:
self.assertEqual(err.exception.__context__.args, ('flush',)) self.assertEqual(err.exception.__context__.args, ('flush',))
self.assertFalse(b.closed) self.assertFalse(b.closed)
# Silence destructor error
raw.close = lambda: None
b.flush = lambda: None
def test_nonnormalized_close_error_on_close(self): def test_nonnormalized_close_error_on_close(self):
# Issue #21677 # Issue #21677
raw = self.MockRawIO() raw = self.MockRawIO()
...@@ -1184,6 +1191,10 @@ class CommonBufferedTests: ...@@ -1184,6 +1191,10 @@ class CommonBufferedTests:
self.assertIn('non_existing_flush', str(err.exception.__context__)) self.assertIn('non_existing_flush', str(err.exception.__context__))
self.assertFalse(b.closed) self.assertFalse(b.closed)
# Silence destructor error
b.flush = lambda: None
raw.close = lambda: None
def test_multi_close(self): def test_multi_close(self):
raw = self.MockRawIO() raw = self.MockRawIO()
b = self.tp(raw) b = self.tp(raw)
...@@ -2039,6 +2050,9 @@ class BufferedRWPairTest(unittest.TestCase): ...@@ -2039,6 +2050,9 @@ class BufferedRWPairTest(unittest.TestCase):
self.assertFalse(reader.closed) self.assertFalse(reader.closed)
self.assertTrue(writer.closed) self.assertTrue(writer.closed)
# Silence destructor error
reader.close = lambda: None
def test_writer_close_error_on_close(self): def test_writer_close_error_on_close(self):
def writer_close(): def writer_close():
writer_non_existing writer_non_existing
...@@ -2053,6 +2067,9 @@ class BufferedRWPairTest(unittest.TestCase): ...@@ -2053,6 +2067,9 @@ class BufferedRWPairTest(unittest.TestCase):
self.assertTrue(reader.closed) self.assertTrue(reader.closed)
self.assertFalse(writer.closed) self.assertFalse(writer.closed)
# Silence destructor error
writer.close = lambda: None
def test_reader_writer_close_error_on_close(self): def test_reader_writer_close_error_on_close(self):
def reader_close(): def reader_close():
reader_non_existing reader_non_existing
...@@ -2072,6 +2089,10 @@ class BufferedRWPairTest(unittest.TestCase): ...@@ -2072,6 +2089,10 @@ class BufferedRWPairTest(unittest.TestCase):
self.assertFalse(reader.closed) self.assertFalse(reader.closed)
self.assertFalse(writer.closed) self.assertFalse(writer.closed)
# Silence destructor error
reader.close = lambda: None
writer.close = lambda: None
def test_isatty(self): def test_isatty(self):
class SelectableIsAtty(MockRawIO): class SelectableIsAtty(MockRawIO):
def __init__(self, isatty): def __init__(self, isatty):
...@@ -3270,6 +3291,10 @@ class TextIOWrapperTest(unittest.TestCase): ...@@ -3270,6 +3291,10 @@ class TextIOWrapperTest(unittest.TestCase):
self.assertEqual(err.exception.__context__.args, ('flush',)) self.assertEqual(err.exception.__context__.args, ('flush',))
self.assertFalse(txt.closed) self.assertFalse(txt.closed)
# Silence destructor error
buffer.close = lambda: None
txt.flush = lambda: None
def test_nonnormalized_close_error_on_close(self): def test_nonnormalized_close_error_on_close(self):
# Issue #21677 # Issue #21677
buffer = self.BytesIO(self.testdata) buffer = self.BytesIO(self.testdata)
...@@ -3287,6 +3312,10 @@ class TextIOWrapperTest(unittest.TestCase): ...@@ -3287,6 +3312,10 @@ class TextIOWrapperTest(unittest.TestCase):
self.assertIn('non_existing_flush', str(err.exception.__context__)) self.assertIn('non_existing_flush', str(err.exception.__context__))
self.assertFalse(txt.closed) self.assertFalse(txt.closed)
# Silence destructor error
buffer.close = lambda: None
txt.flush = lambda: None
def test_multi_close(self): def test_multi_close(self):
txt = self.TextIOWrapper(self.BytesIO(self.testdata), encoding="ascii") txt = self.TextIOWrapper(self.BytesIO(self.testdata), encoding="ascii")
txt.close() txt.close()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment