def test_server(s, a, b): stream = yield connect('127.0.0.1', s.port) yield write(stream, {'op': 'register-client', 'client': 'ident'}) stream = BatchedStream(stream, 0) stream.send({ 'op': 'update-graph', 'tasks': { 'x': dumps_task((inc, 1)), 'y': dumps_task((inc, 'x')) }, 'dependencies': { 'x': [], 'y': ['x'] }, 'keys': ['y'], 'client': 'ident' }) while True: msg = yield read(stream) if msg['op'] == 'key-in-memory' and msg['key'] == 'y': break stream.send({'op': 'close-stream'}) msg = yield read(stream) assert msg == {'op': 'stream-closed'} assert stream.closed() stream.close()
def test_BatchedStream(): port = 3434 server = MyServer() server.listen(port) client = TCPClient() stream = yield client.connect('127.0.0.1', port) b = BatchedStream(stream, interval=20) b.send('hello') b.send('world') result = yield b.recv(); assert result == 'hello' result = yield b.recv(); assert result == 'hello' result = yield b.recv(); assert result == 'world' result = yield b.recv(); assert result == 'world' b.close()
def test_server(s, a, b): stream = yield connect('127.0.0.1', s.port) yield write(stream, {'op': 'register-client', 'client': 'ident'}) stream = BatchedStream(stream, 0) stream.send({'op': 'update-graph', 'tasks': {'x': dumps_task((inc, 1)), 'y': dumps_task((inc, 'x'))}, 'dependencies': {'x': [], 'y': ['x']}, 'keys': ['y'], 'client': 'ident'}) while True: msg = yield read(stream) if msg['op'] == 'key-in-memory' and msg['key'] == 'y': break stream.send({'op': 'close-stream'}) msg = yield read(stream) assert msg == {'op': 'stream-closed'} assert stream.closed() stream.close()
def test_BatchedStream(): port = 3434 server = MyServer() server.listen(port) client = TCPClient() stream = yield client.connect('127.0.0.1', port) b = BatchedStream(stream, interval=20) b.send('hello') b.send('world') result = yield b.recv() assert result == 'hello' result = yield b.recv() assert result == 'hello' result = yield b.recv() assert result == 'world' result = yield b.recv() assert result == 'world' b.close()
def test_BatchedStream_raises(): port = 3435 server = MyServer() server.listen(port) client = TCPClient() stream = yield client.connect('127.0.0.1', port) b = BatchedStream(stream, interval=20) stream.close() with pytest.raises(StreamClosedError): yield b.recv() with pytest.raises(StreamClosedError): yield b.send('123')
def handle_stream(self, stream, address): batched = BatchedStream(stream, interval=10) while True: msg = yield batched.recv() batched.send(msg) batched.send(msg)