from core.tools.tool.api_tool import ApiTool from core.tools.tool.tool import Tool from tests.integration_tests.tools.__mock.http import setup_http_mock tool_bundle = { "server_url": "http://www.example.com/{path_param}", "method": "post", "author": "", "openapi": { "parameters": [ {"in": "path", "name": "path_param"}, {"in": "query", "name": "query_param"}, {"in": "cookie", "name": "cookie_param"}, {"in": "header", "name": "header_param"}, ], "requestBody": { "content": {"application/json": {"schema": {"properties": {"body_param": {"type": "string"}}}}} }, }, "parameters": [], } parameters = { "path_param": "p_param", "query_param": "q_param", "cookie_param": "c_param", "header_param": "h_param", "body_param": "b_param", } def test_api_tool(setup_http_mock): tool = ApiTool(api_bundle=tool_bundle, runtime=Tool.Runtime(credentials={"auth_type": "none"})) headers = tool.assembling_request(parameters) response = tool.do_http_request(tool.api_bundle.server_url, tool.api_bundle.method, headers, parameters) assert response.status_code == 200 assert "/p_param" == response.request.url.path assert b"query_param=q_param" == response.request.url.query assert "h_param" == response.request.headers.get("header_param") assert "application/json" == response.request.headers.get("content-type") assert "cookie_param=c_param" == response.request.headers.get("cookie") assert "b_param" in response.content.decode()