예제 #1
0
 def test_mds_process(self):
     mdsplugin = MDSExec(
         CocaineProxy(),
         {"srw_host": "http://localhost:%d" % self.get_http_port()})
     conn = _FakeConnection()
     req = HTTPServerRequest(
         method="PUT",
         uri="/blabla",
         version="HTTP/1.1",
         headers={
             "X-Cocaine-Service": "application",
             "X-Cocaine-Event": "event",
             "X-Srw-Key": "320.namespace:301123837.E150591:1046883323",
             "X-Srw-Namespace": "namespace",
             "X-Srw-Key-Type": "mds",
             "Authorization": "Basic aaabbb",
         },
         connection=conn,
         body="body",
         host="localhost")
     req.logger = NULLLOGGER
     yield mdsplugin.process(req)
     self.assertEqual(conn.start_line.code, 202)
     self.assertEqual(conn.start_line.version, "HTTP/1.1")
     self.assertEqual(len(conn.chunks), 1)
     self.assertEqual(''.join(conn.chunks), "CHUNK1CHUNK2CHUNK3")
     self.assertEqual(conn.headers["A"], "B")
예제 #2
0
    def test_400_invalid_request_error(self):
        proxy = mock.Mock()
        plugin = JSONRPC(proxy, {})

        connection = mock.Mock(spec=[])
        connection.write_headers = mock.MagicMock()
        connection.finish = mock.MagicMock()
        request = HTTPServerRequest(
            method='PUT',
            uri='/',
            version='HTTP/1.1',
            headers={
                'X-Cocaine-JSON-RPC': 'Enable',
            },
            connection=connection,
            body='{"jsonrpc": 2.0, "method": "method", "params_": [], "id": 1}',
            host='localhost')
        request.logger = NULLLOGGER

        yield plugin.process(request)

        connection.write_headers.assert_called_with(
            ResponseStartLine(version='HTTP/1.1',
                              code=400,
                              reason='Bad JSON-RPC request'), mock.ANY,
            '{"message": "The JSON sent is not a valid Request object.", "code": -32600}'
        )
예제 #3
0
    def test_400_parse_error(self):
        proxy = mock.Mock()
        plugin = JSONRPC(proxy, {})

        connection = mock.Mock(spec=[])
        connection.write_headers = mock.MagicMock()
        connection.finish = mock.MagicMock()
        request = HTTPServerRequest(method='PUT',
                                    uri='/',
                                    version='HTTP/1.1',
                                    headers={
                                        'X-Cocaine-JSON-RPC': 'Enable',
                                    },
                                    connection=connection,
                                    body='{',
                                    host='localhost')
        request.logger = NULLLOGGER

        yield plugin.process(request)

        connection.write_headers.assert_called_with(
            ResponseStartLine(version='HTTP/1.1',
                              code=400,
                              reason='Bad JSON-RPC request'), mock.ANY,
            '{"message": "Parse error: Invalid JSON was received by the server.", "code": -32700}'
        )
예제 #4
0
 def test_mds_process(self):
     mdsplugin = MDSExec(CocaineProxy(), {"srw_host": "http://localhost:%d" % self.get_http_port()})
     conn = _FakeConnection()
     req = HTTPServerRequest(method="PUT", uri="/blabla",
                             version="HTTP/1.1", headers={
                                 "X-Cocaine-Service": "application",
                                 "X-Cocaine-Event": "event",
                                 "X-Srw-Key": "320.namespace:301123837.E150591:1046883323",
                                 "X-Srw-Namespace": "namespace",
                                 "X-Srw-Key-Type": "mds",
                                 "Authorization": "Basic aaabbb",
                             },
                             connection=conn,
                             body="body", host="localhost")
     req.logger = NULLLOGGER
     yield mdsplugin.process(req)
     self.assertEqual(conn.start_line.code, 202)
     self.assertEqual(conn.start_line.version, "HTTP/1.1")
     self.assertEqual(len(conn.chunks), 1)
     self.assertEqual(''.join(conn.chunks), "CHUNK1CHUNK2CHUNK3")
     self.assertEqual(conn.headers["A"], "B")