mirror of
https://github.com/python/cpython.git
synced 2025-11-26 13:22:51 +00:00
gh-127182: Fix io.StringIO.__setstate__ crash when None is the first value (#127219)
Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
parent
d3da04bfc9
commit
a2ee899682
3 changed files with 33 additions and 14 deletions
|
|
@ -1148,6 +1148,21 @@ class TestIOCTypes(unittest.TestCase):
|
|||
_io = self._io
|
||||
support.check_disallow_instantiation(self, _io._BytesIOBuffer)
|
||||
|
||||
def test_stringio_setstate(self):
|
||||
# gh-127182: Calling __setstate__() with invalid arguments must not crash
|
||||
obj = self._io.StringIO()
|
||||
with self.assertRaisesRegex(
|
||||
TypeError,
|
||||
'initial_value must be str or None, not int',
|
||||
):
|
||||
obj.__setstate__((1, '', 0, {}))
|
||||
|
||||
obj.__setstate__((None, '', 0, {})) # should not crash
|
||||
self.assertEqual(obj.getvalue(), '')
|
||||
|
||||
obj.__setstate__(('', '', 0, {}))
|
||||
self.assertEqual(obj.getvalue(), '')
|
||||
|
||||
class PyIOTest(IOTest):
|
||||
pass
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue