def test_empty(self): with gevent.Timeout(1): pipe = Pipe() self.assertFalse(pipe.closed()) self.assertFalse(pipe.finished()) pipe.close() self.assertTrue(pipe.closed()) self.assertTrue(pipe.finished())
def test_put_and_get(self): with gevent.Timeout(1): pipe = Pipe() pipe.put(1) self.assertFalse(pipe.closed()) self.assertFalse(pipe.finished()) self.assertEqual(pipe.get_nowait(), 1) self.assertFalse(pipe.closed()) self.assertFalse(pipe.finished()) self.assertRaises(Empty, pipe.get_nowait)
def test_pipe2file(self): with gevent.Timeout(1): pipe = Pipe() file = tempfile.NamedTemporaryFile(delete=False) try: pf = gevent.spawn_link_exception(pipe_to_file, pipe, file) with open(self.TESTFILE, "r") as infile: for line in infile: pipe.put(line) pipe.close() pf.join() self.assertTrue(file.closed) self.assertTrue(pipe.finished()) self.assertEqualFiles(self.TESTFILE, file.name) finally: try: os.remove(file.name) except: pass
def test_file2pipe(self): with gevent.Timeout(1): file = open(self.TESTFILE, "r") pipe = Pipe() gevent.spawn_link_exception(file_to_pipe, file, pipe).join() result = "".join(chunk for chunk in pipe) self.assertTrue(file.closed) self.assertTrue(pipe.finished()) self.assertEqual(result, self.get_content(self.TESTFILE))
def test_file2file(self): with gevent.Timeout(1): srcfile = open(self.TESTFILE, "r") pipe = Pipe(0) dstfile = tempfile.NamedTemporaryFile(delete=False) try: pf = gevent.spawn_link_exception(pipe_to_file, pipe, dstfile) fp = gevent.spawn_link_exception(file_to_pipe, srcfile, pipe, 64) gevent.joinall([fp, pf]) self.assertTrue(srcfile.closed) self.assertTrue(dstfile.closed) self.assertTrue(pipe.finished()) self.assertEqualFiles(self.TESTFILE, dstfile.name) finally: try: os.remove(file.name) except: pass