def testFileException(self): """Test encoding a file which raises an exception""" f = FileException(200 * 1024) # size depends on buffer size new_iter = IterWrappingFile(FileWrappingIter(iter([f, b"foo"]))) f_out = next(new_iter) self.assertEqual(f_out.read(50000), b"a" * 50000) with self.assertRaises(OSError): buf = f_out.read(190 * 1024) # noqa: F841 self.assertEqual(next(new_iter), b"foo") self.assertRaises(StopIteration, new_iter.__next__)
def testFile(self): """Test sending files through iters""" buf1 = b"hello" * 10000 file1 = io.BytesIO(buf1) buf2 = b"goodbye" * 10000 file2 = io.BytesIO(buf2) file_iter = FileWrappingIter(iter([file1, file2])) new_iter = IterWrappingFile(file_iter) self.assertEqual(next(new_iter).read(), buf1) self.assertEqual(next(new_iter).read(), buf2) self.assertRaises(StopIteration, new_iter.__next__)
def testConversion(self): """Test iter to file conversion""" for itm in [self.iter1maker, self.iter2maker]: self.assertTrue( iter_equal(itm(), IterWrappingFile(FileWrappingIter(itm()))))