예제 #1
0
    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__)
예제 #2
0
    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__)
예제 #3
0
 def testConversion(self):
     """Test iter to file conversion"""
     for itm in [self.iter1maker, self.iter2maker]:
         self.assertTrue(
             iter_equal(itm(), IterWrappingFile(FileWrappingIter(itm()))))