コード例 #1
0
    def test_setup_frontend_creates_socket(self):
        m = services.AsyncInbox(services._socket('tcp://127.0.0.1:10000'),
                                self.ctx)
        m.setup_socket()

        self.assertEqual(m.socket.type, zmq.ROUTER)
        self.assertEqual(m.socket.getsockopt(zmq.LINGER), m.linger)
コード例 #2
0
    def test_sending_message_returns_it(self):
        m = MultiPartAsyncInbox(services._socket('tcp://127.0.0.1:10000'),
                                self.ctx,
                                linger=500,
                                poll_timeout=500)

        async def get(msg):
            socket = self.ctx.socket(zmq.DEALER)
            socket.connect('tcp://127.0.0.1:10000')

            await socket.send_multipart(msg)

            res = await socket.recv()

            return res

        tasks = asyncio.gather(
            m.serve(),
            get([b'howdy', b'partner']),
            stop_server(m, 0.2),
        )

        loop = asyncio.get_event_loop()
        res = loop.run_until_complete(tasks)

        self.assertEqual(res[1], b'howdy')
コード例 #3
0
    def __init__(
            self,
            filename: str,
            options: rocksdb.Options = rocksdb.Options(create_if_missing=True),
            socket_id=services._socket('ipc:////tmp/rocks'),
            ctx=constants.DEFAULT_ZMQ_CONTEXT,
            linger=2000,
            poll_timeout=50):

        self.db = rocksdb.DB(db_name=filename, opts=options)

        super().__init__(socket_id=socket_id,
                         ctx=ctx,
                         linger=linger,
                         poll_timeout=poll_timeout)

        self.prefix = None
        self.iterator = self.db.iterkeys()
        self.iterator.seek_to_first()
コード例 #4
0
    def test_sockets_are_initially_none(self):
        m = services.AsyncInbox(services._socket('tcp://127.0.0.1:10000'),
                                self.ctx)

        self.assertIsNone(m.socket)
コード例 #5
0
    def test_addresses_correct(self):
        m = services.AsyncInbox(services._socket('tcp://127.0.0.1:10000'),
                                self.ctx)

        self.assertEqual(m.address, 'tcp://*:10000')
コード例 #6
0
 def test_init(self):
     services.AsyncInbox(services._socket('tcp://127.0.0.1:10000'),
                         self.ctx)
コード例 #7
0
ファイル: constants.py プロジェクト: Lamden/rocks
import zmq.asyncio
import os

# BASIC COMMANDS #
GET_COMMAND = b'\x00'
SET_COMMAND = b'\x01'
DEL_COMMAND = b'\x02'

# BASIC RESPONSES #
OK_RESPONSE = b'\x03'
BAD_RESPONSE = b'\x04'

# # #

# ITERATOR COMMANDS #
SEEK_ITER_COMMAND = b'\x05'
NEXT_COMMAND = b'\x08'

# ITERATOR RESPONSES #
STOP_ITER_RESPONSE = b'\x09'

# # #

FLUSH_COMMAND = b'\x0a'

PING_COMMAND = b'\x0b'

DEFAULT_ZMQ_CONTEXT = zmq.asyncio.Context()
DEFAULT_SOCKET = services._socket('ipc:////tmp/rocks')

DEFAULT_DIRECTORY = os.path.expanduser('~/rocks')