test_api_tool.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from core.tools.tool.api_tool import ApiTool
  2. from core.tools.tool.tool import Tool
  3. from tests.integration_tests.tools.__mock.http import setup_http_mock
  4. tool_bundle = {
  5. "server_url": "http://www.example.com/{path_param}",
  6. "method": "post",
  7. "author": "",
  8. "openapi": {
  9. "parameters": [
  10. {"in": "path", "name": "path_param"},
  11. {"in": "query", "name": "query_param"},
  12. {"in": "cookie", "name": "cookie_param"},
  13. {"in": "header", "name": "header_param"},
  14. ],
  15. "requestBody": {
  16. "content": {"application/json": {"schema": {"properties": {"body_param": {"type": "string"}}}}}
  17. },
  18. },
  19. "parameters": [],
  20. }
  21. parameters = {
  22. "path_param": "p_param",
  23. "query_param": "q_param",
  24. "cookie_param": "c_param",
  25. "header_param": "h_param",
  26. "body_param": "b_param",
  27. }
  28. def test_api_tool(setup_http_mock):
  29. tool = ApiTool(api_bundle=tool_bundle, runtime=Tool.Runtime(credentials={"auth_type": "none"}))
  30. headers = tool.assembling_request(parameters)
  31. response = tool.do_http_request(tool.api_bundle.server_url, tool.api_bundle.method, headers, parameters)
  32. assert response.status_code == 200
  33. assert "/p_param" == response.request.url.path
  34. assert b"query_param=q_param" == response.request.url.query
  35. assert "h_param" == response.request.headers.get("header_param")
  36. assert "application/json" == response.request.headers.get("content-type")
  37. assert "cookie_param=c_param" == response.request.headers.get("cookie")
  38. assert "b_param" in response.content.decode()