예제 #1
0
    def test_decode(self):
        msg = MBMessage()

        msg.encode(self.msg_id,
                   self.action,
                   self.target,
                   self.payload,
                   self.context)

        json = msg.to_json()

        msg.decode(json)

        self.assertEqual(json, msg.to_json())
예제 #2
0
    def test__on_recv(self):
        client = ZmqObject(['tcp://localhost:5555'], zmq.REQ)

        msg = MBMessage('foo', 'action_bar', None, {
            'first_arg': 2,
            'second_arg': 3
        }, {'multiplier': 6})

        zmq_msg = msg.to_json()

        worker = self.worker

        worker_thread = threading.Thread(target=worker.start)
        worker_thread.start()

        time.sleep(2)

        client.zmq_connect()
        client.zmq_send(zmq_msg)

        result = worker.decode_msg(client.zmq_recv())

        client.socket.close()

        self.assertEqual(result.payload, 30)
예제 #3
0
    def post(self):
        post_data = json.loads(self.request.body)

        email = post_data.get('email')
        username = post_data.get('username')
        password = post_data.get('password')

        api_msg = MBMessage(None, 'authenticate',
                            {'username': email or username},
                            {'password': password}, self.context())

        resp = yield self.dispatch(api_msg)

        resp_msg = MBMessage(resp.msg_id,
                             resp.action,
                             api_msg.target,
                             resp.payload,
                             resp.context,
                             merge_target=False)

        self.mb_cookies(resp)

        self.set_header('Content-Type', 'application/json')
        self.write(resp_msg.to_json())
        self.finish()
예제 #4
0
    def test_init_decode(self):
        msg = MBMessage(
                   self.msg_id,
                   self.action,
                   self.target,
                   self.payload,
                   self.context)

        result = msg.to_json()
        excepted = json.dumps([msg.msg_id,
                               msg.action,
                               self.target,
                               msg.payload,
                               {}, msg.timestamp,])

        dec_msg = MBMessage(result)

        self.assertEqual(result, dec_msg.to_json())
예제 #5
0
파일: api.py 프로젝트: entropiae/urlist
        def _unmarshal(raw_response):
            resp = GoHandler.hyperdrive_decode(go_handlers, raw_response)

            if not resp:
                logging.info("GO ERROR")

                return None

            resp_msg = MBMessage(resp.msg_id, resp.action, resp.target,
                                 resp.payload, resp.context, merge_target=False)

            self.mb_cookies(resp)

            return resp_msg.to_json()
예제 #6
0
        def _unmarshal(raw_response):
            resp = GoHandler.hyperdrive_decode(go_handlers, raw_response)

            if not resp:
                logging.info("GO ERROR")

                return None

            resp_msg = MBMessage(resp.msg_id,
                                 resp.action,
                                 resp.target,
                                 resp.payload,
                                 resp.context,
                                 merge_target=False)

            self.mb_cookies(resp)

            return resp_msg.to_json()
예제 #7
0
파일: api.py 프로젝트: entropiae/urlist
    def post(self):
        api_msg = self.decode_api_msg(self.request.body)

        go = GoHandler.can_handle(self, api_msg)
        if go:
            resp = yield go.dispatch()

            resp_msg = go.make_response(resp)
        else:
            resp = yield self.dispatch(api_msg)

            resp_msg = MBMessage(resp.msg_id, resp.action,
                                 api_msg.target, resp.payload, resp.context, merge_target=False)

            self.mb_cookies(resp)

        self.set_header('Content-Type', 'application/json')
        self.write(resp_msg.to_json())
        self.finish()
예제 #8
0
    def post(self):
        api_msg = self.decode_api_msg(self.request.body)

        go = GoHandler.can_handle(self, api_msg)
        if go:
            resp = yield go.dispatch()

            resp_msg = go.make_response(resp)
        else:
            resp = yield self.dispatch(api_msg)

            resp_msg = MBMessage(resp.msg_id,
                                 resp.action,
                                 api_msg.target,
                                 resp.payload,
                                 resp.context,
                                 merge_target=False)

            self.mb_cookies(resp)

        self.set_header('Content-Type', 'application/json')
        self.write(resp_msg.to_json())
        self.finish()
예제 #9
0
파일: workers.py 프로젝트: entropiae/urlist
    def test__on_recv(self):
        client = ZmqObject(['tcp://localhost:5555'], zmq.REQ)

        msg = MBMessage('foo', 'action_bar', None,
                        {'first_arg': 2, 'second_arg': 3},
                        {'multiplier': 6})

        zmq_msg = msg.to_json()

        worker = self.worker

        worker_thread = threading.Thread(target=worker.start)
        worker_thread.start()

        time.sleep(2)

        client.zmq_connect()
        client.zmq_send(zmq_msg)

        result = worker.decode_msg(client.zmq_recv())

        client.socket.close()

        self.assertEqual(result.payload, 30)