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_put_to_closed_file(self): with gevent.Timeout(1): pipe = Pipe() file = open(os.devnull, "w") pf = gevent.spawn_link_exception(pipe_to_file, pipe, file) # Wait for pipe_to_file to block while not pipe.getters: gevent.sleep(0) # Close file file.close() # Write something to pipe pipe.put(".") # Wait for pipe_to_file process to end pf.join() # Pipe should be closed now self.assertTrue(pipe.closed())