diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2017-04-19 17:03:52 (GMT) | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-04-19 17:03:52 (GMT) | 
| commit | bf623ae8843dc30b28c574bec8d29fc14be59d86 (patch) | |
| tree | 0a7ab5b441e0306767bfbc6da4522e4af34ab9e6 /Lib/test/test_io.py | |
| parent | c209b70d610da50a844a3c10f37d6183bade3446 (diff) | |
| download | cpython-bf623ae8843dc30b28c574bec8d29fc14be59d86.zip cpython-bf623ae8843dc30b28c574bec8d29fc14be59d86.tar.gz cpython-bf623ae8843dc30b28c574bec8d29fc14be59d86.tar.bz2  | |
bpo-30061: Check if PyObject_Size()/PySequence_Size()/PyMapping_Size() (#1096)
raised an error.
Replace them with using concrete types API that never fails if appropriate.
Diffstat (limited to 'Lib/test/test_io.py')
| -rw-r--r-- | Lib/test/test_io.py | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index 32f76a6..46c7833 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -543,6 +543,22 @@ class IOTest(unittest.TestCase):          with self.open(support.TESTFN, "r") as f:              self.assertRaises(TypeError, f.readline, 5.3) +    def test_readline_nonsizeable(self): +        # Issue #30061 +        # Crash when readline() returns an object without __len__ +        class R(self.IOBase): +            def readline(self): +                return None +        self.assertRaises((TypeError, StopIteration), next, R()) + +    def test_next_nonsizeable(self): +        # Issue #30061 +        # Crash when __next__() returns an object without __len__ +        class R(self.IOBase): +            def __next__(self): +                return None +        self.assertRaises(TypeError, R().readlines, 1) +      def test_raw_bytes_io(self):          f = self.BytesIO()          self.write_ops(f)  | 
