def test_not_sent_until_permitted(self): i = DeferredIOWorker(IOWorker(), DeferredIOWorkerTest.call_later) i.send("foo") self.assertFalse(i._io_worker._ready_to_send) self.assertFalse(i._send_queue.empty()) i.permit_send() self.assertTrue(i._send_queue.empty()) i._io_worker._consume_send_buf(3) self.assertFalse(i._io_worker._ready_to_send)
def test_not_received_until_permitted(self): i = DeferredIOWorker(IOWorker(), DeferredIOWorkerTest.call_later) self.data = None def d(worker): self.data = worker.peek_receive_buf() i.set_receive_handler(d) i._io_worker._push_receive_data("bar") self.assertEqual(self.data, None) i.permit_receive() self.assertEqual(self.data, "bar") # d does not consume the data i._io_worker._push_receive_data("hepp") i.permit_receive() self.assertEqual(self.data, "barhepp")
def test_receive_consume(self): i = DeferredIOWorker(IOWorker(), DeferredIOWorkerTest.call_later) self.data = None def consume(worker): self.data = worker.peek_receive_buf() worker.consume_receive_buf(len(self.data)) i.set_receive_handler(consume) i._io_worker._push_receive_data("bar") self.assertEqual(self.data, None) i.permit_receive() self.assertEqual(self.data, "bar") # data has been consumed i._io_worker._push_receive_data("hepp") i.permit_receive() self.assertEqual(self.data, "hepp")