コード例 #1
0
    def test_errors(self):
        async def get(check):
            app, srv, url = await self.create_server(
                middlewares=[jrpc_errorhandler_middleware])
            resp = await self.client.get(url)
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (await resp.json()))
            self.assertEqual(None, (await resp.release()))

        async def post(check, data=None):
            app, srv, url = await self.create_server(
                middlewares=[jrpc_errorhandler_middleware])
            resp = await self.client.post(url, data=json.dumps(data))
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (await resp.json()))
            self.assertEqual(None, (await resp.release()))

        self.loop.run_until_complete(get(PARSE_ERROR))
        self.loop.run_until_complete(post(INVALID_REQUEST))
        self.loop.run_until_complete(post(INVALID_REQUEST, {"example": None}))
        self.loop.run_until_complete(
            post(NOT_FOUND, create_request("not_found")))
        self.loop.run_until_complete(
            post(INVALID_PARAMS, create_request("v_hello")))
        self.loop.run_until_complete(
            post(INTERNAL_ERROR, create_request("err_exc")))
コード例 #2
0
    def test_errors(self):

        @asyncio.coroutine
        def get(check):
            app, srv, url = yield from self.create_server(middlewares=[
                jrpc_errorhandler_middleware])
            resp = yield from self.client.get(url)
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (yield from resp.json()))
            self.assertEqual(None, (yield from resp.release()))

        @asyncio.coroutine
        def post(check, data=None):
            app, srv, url = yield from self.create_server(middlewares=[
                jrpc_errorhandler_middleware])
            resp = yield from self.client.post(url, data=json.dumps(data))
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (yield from resp.json()))
            self.assertEqual(None, (yield from resp.release()))

        self.loop.run_until_complete(get(PARSE_ERROR))
        self.loop.run_until_complete(post(INVALID_REQUEST))
        self.loop.run_until_complete(post(INVALID_REQUEST, {"example": None}))
        self.loop.run_until_complete(post(NOT_FOUND,
                                          create_request("not_found")))
        self.loop.run_until_complete(post(INVALID_PARAMS,
                                          create_request("v_hello")))
        self.loop.run_until_complete(post(INTERNAL_ERROR,
                                          create_request("err_exc")))
コード例 #3
0
 def _send_request(self, data, url):
     request = utils.create_request(data,
                                    self.secret,
                                    url,
                                    method=self.method)
     response = requests.post(url=url, data=request)
     return self.parse_response(unicode(response.text), url=url)
コード例 #4
0
    def test_without_validate(self):
        async def post(check, data=None):
            app, srv, url = await self.create_server()
            resp = await self.client.post(url, data=json.dumps(data))
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (await resp.json()))
            self.assertEqual(None, (await resp.release()))

        self.loop.run_until_complete(
            post(create_response(None, {"a": "b"}), create_request("hello")))
        self.loop.run_until_complete(
            post(create_response(123, {"a": "b"}),
                 create_request("hello", 123)))
        self.loop.run_until_complete(
            post(create_response("123", {"a": "b"}),
                 create_request("hello", "123")))
コード例 #5
0
    def test_custom_error(self):
        async def post(check, data=None):
            app, srv, url = await self.create_server(
                middlewares=[custom_errorhandler_middleware])
            resp = await self.client.post(url, data=json.dumps(data))
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (await resp.json()))
            self.assertEqual(None, (await resp.release()))

        self.loop.run_until_complete(
            post(INTERNAL_ERROR, create_request("err_exc")))
        self.loop.run_until_complete(
            post(INTERNAL_ERROR, create_request("err_exc2")))
        self.loop.run_until_complete(
            post(CUSTOM_ERROR_GT, create_request("err_gt")))
        self.loop.run_until_complete(
            post(CUSTOM_ERROR_LT, create_request("err_lt")))
コード例 #6
0
    def test_validate(self):
        @asyncio.coroutine
        def post(check, data=None):
            app, srv, url = yield from self.create_server()
            resp = yield from self.client.post(url, data=json.dumps(data))
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (yield from resp.json()))
            self.assertEqual(None, (yield from resp.release()))

        self.loop.run_until_complete(post(INVALID_PARAMS,
                                          create_request("v_hello")))
        self.loop.run_until_complete(
            post(create_response(result={"status": "ok"}),
                 create_request("v_hello", params={"data": "ok"})))
        self.loop.run_until_complete(
            post(create_response(1234, {"status": "ok"}),
                 create_request("v_hello", 1234, {"data": "ok"})))
        self.loop.run_until_complete(
            post(create_response(None, {"status": "ok"}),
                 create_request("v_hello", None, {"data": "ok"})))
        self.loop.run_until_complete(
            post(create_response("1", {"status": "OK"}),
                 create_request("v_hello", "1", {"data": "TEST"})))
        self.loop.run_until_complete(
            post(create_response(True, {"status": "ok"}),
                 create_request("v_hello", True, {"data": "ok"})))
        self.loop.run_until_complete(
            post(create_response(False, {"status": "ok"}),
                 create_request("v_hello", False, {"data": "ok"})))
コード例 #7
0
    def test_validate(self):
        async def post(check, data=None):
            app, srv, url = await self.create_server()
            resp = await self.client.post(url, data=json.dumps(data))
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (await resp.json()))
            self.assertEqual(None, (await resp.release()))

        self.loop.run_until_complete(
            post(INVALID_PARAMS, create_request("v_hello")))
        self.loop.run_until_complete(
            post(create_response(result={"status": "ok"}),
                 create_request("v_hello", params={"data": "ok"})))
        self.loop.run_until_complete(
            post(create_response(1234, {"status": "ok"}),
                 create_request("v_hello", 1234, {"data": "ok"})))
        self.loop.run_until_complete(
            post(create_response(None, {"status": "ok"}),
                 create_request("v_hello", None, {"data": "ok"})))
        self.loop.run_until_complete(
            post(create_response("1", {"status": "OK"}),
                 create_request("v_hello", "1", {"data": "TEST"})))
        self.loop.run_until_complete(
            post(create_response(True, {"status": "ok"}),
                 create_request("v_hello", True, {"data": "ok"})))
        self.loop.run_until_complete(
            post(create_response(False, {"status": "ok"}),
                 create_request("v_hello", False, {"data": "ok"})))
コード例 #8
0
    def test_without_validate(self):
        @asyncio.coroutine
        def post(check, data=None):
            app, srv, url = yield from self.create_server()
            resp = yield from self.client.post(url, data=json.dumps(data))
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (yield from resp.json()))
            self.assertEqual(None, (yield from resp.release()))

        self.loop.run_until_complete(
            post(create_response(None, {"a": "b"}),
                 create_request("hello")))
        self.loop.run_until_complete(
            post(create_response(123, {"a": "b"}),
                 create_request("hello", 123)))
        self.loop.run_until_complete(
            post(create_response("123", {"a": "b"}),
                 create_request("hello", "123")))
コード例 #9
0
    def test_custom_error(self):

        @asyncio.coroutine
        def post(check, data=None):
            app, srv, url = yield from self.create_server(middlewares=[
                custom_errorhandler_middleware])
            resp = yield from self.client.post(url, data=json.dumps(data))
            self.assertEqual(200, resp.status)
            self.assertEqual(check, (yield from resp.json()))
            self.assertEqual(None, (yield from resp.release()))

        self.loop.run_until_complete(post(INTERNAL_ERROR,
                                          create_request("err_exc")))
        self.loop.run_until_complete(post(INTERNAL_ERROR,
                                          create_request("err_exc2")))
        self.loop.run_until_complete(post(CUSTOM_ERROR_GT,
                                          create_request("err_gt")))
        self.loop.run_until_complete(post(CUSTOM_ERROR_LT,
                                          create_request("err_lt")))
コード例 #10
0
ファイル: request.py プロジェクト: hkucs/dtn-client
def request(source, destination, size=4, delay=30, deadline=90, utility=1.0):
    # number of chunks
    chunk_n = size
    # message
    msg_type = 'request'
    ts_delay = datetime.timedelta(seconds=delay)
    ts_deadline = datetime.timedelta(seconds=deadline)
    ts_now = datetime.datetime.now()

    ts_start = ts_now + ts_delay
    ts_end = ts_now + ts_deadline

    ts_start_out = ts_start.strftime("%Y-%m-%d %H:%M:%S")
    ts_end_out = ts_end.strftime("%Y-%m-%d %H:%M:%S")

    cmd_json = utils.create_request(ts_start_out, ts_end_out, str(size), str(source), str(destination), msg_type, utility)

    print cmd_json

    cmd_json = cmd_json + '\n'

    # create socket
    s = socket.socket()
    s.settimeout(5)
    s.connect(('147.8.178.128', 8088))
    s.sendall(cmd_json)
    s.sendall('\n')

    # waiting for confirmation
    recv_job_id = s.recv(BUFFER_LEN)
    s.close()
    print 'Received job_id: %s. Size: %s' % (recv_job_id, len(recv_job_id))
    recv_job_id = recv_job_id.strip()

    return True # no need to create file from here

    if recv_job_id != '-1':
        job_id = str(recv_job_id).zfill(8)

        # creating dummy chunks
        srcfile = '/data/block'
        assert os.path.isabs(srcfile)
        for x in range(0,chunk_n):
            dstfile = '/data/%s_%s' % (job_id, str(x).zfill(4))
            shutil.copy(srcfile, dstfile)

        return True

    return False
コード例 #11
0
ファイル: client.py プロジェクト: 05bit/python-platrontools
	def _send_request(self, data, url):
		request = utils.create_request(data, self.secret, url,
									   method=self.method)
		response = requests.post(url=url, data=request)
		return self.parse_response(unicode(response.text), url=url)