def get_stream(self, *packets):
     if self.param == 'BufferedStream':
         return MyBufferedStream(*packets)
     elif self.param == 'BufferedSocket':
         sock = FakeSocket(*packets)
         return BufferedSocket(sock)
     assert False
Beispiel #2
0
    def test_socket(self):
        from capnpy.buffered import BufferedSocket
        def chunks(buf, n):
            for i in range(0, len(buf), n):
                yield buf[i:i+n]
            # now simulate closed socket
            while True:
                yield ''

        class FakeSocket(object):
            def __init__(self, buf):
                # yield packets 7 bytes at a time (to excercise BufferedSocket
                # corner cases)
                self._chunks = chunks(buf, 7)

            def recv(self, size):
                return next(self._chunks)

        sock = FakeSocket(self.buf)
        buffered_sock = BufferedSocket(sock)
        self.check(buffered_sock)
Beispiel #3
0
 def open_connection():
     sock = socket.create_connection((host, port))
     if schema.__name__ == 'Capnpy':
         sock = BufferedSocket(sock)
     return sock
 def test_write(self):
     if self.param != 'BufferedSocket':
         return
     sock = FakeSocket()
     bufsock = BufferedSocket(sock)
     bufsock.write('hello ')
     bufsock.write('world')
     assert sock.received == ''
     bufsock.flush()
     assert sock.received == 'hello world'
     bufsock.write(' foobar')
     assert sock.received == 'hello world'
     bufsock.flush()
     assert sock.received == 'hello world foobar'
 def open_connection():
     host, port = server.host, server.port
     sock = socket.create_connection((host, port))
     return BufferedSocket(sock)