def test_pipes(self): reader1, writer1 = greenhouse.pipe() reader2, writer2 = greenhouse.pipe() writer1.write("x") evs = greenhouse.wait_fds( [(reader1.fileno(), 3), (writer1.fileno(), 3), (reader2.fileno(), 3), (writer2.fileno(), 3)] ) self.assertEqual(sorted(evs), sorted([(reader1.fileno(), 1), (writer1.fileno(), 2), (writer2.fileno(), 2)]))
def test_pipes(self): reader1, writer1 = greenhouse.pipe() reader2, writer2 = greenhouse.pipe() writer1.write("x") evs = greenhouse.wait_fds([ (reader1.fileno(), 3), (writer1.fileno(), 3), (reader2.fileno(), 3), (writer2.fileno(), 3)]) self.assertEqual(sorted(evs), sorted([(reader1.fileno(), 1), (writer1.fileno(), 2), (writer2.fileno(), 2)]))
def test_basic(self): rfp, wfp = greenhouse.pipe() try: wfp.write("howdy") assert rfp.read(5) == "howdy" finally: rfp.close() wfp.close()
def test_blocking(self): rfp, wfp = greenhouse.pipe() l = [] try: @greenhouse.schedule def f(): l.append(rfp.read(4)) greenhouse.pause() assert not l wfp.write("heyo") greenhouse.pause_for(TESTING_TIMEOUT) assert l and l[0] == "heyo", l finally: rfp.close() wfp.close()