test_api_tool.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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': {'parameters': [{'in': 'path', 'name': 'path_param'},
  9. {'in': 'query', 'name': 'query_param'},
  10. {'in': 'cookie', 'name': 'cookie_param'},
  11. {'in': 'header', 'name': 'header_param'},
  12. ],
  13. 'requestBody': {
  14. 'content': {'application/json': {'schema': {'properties': {'body_param': {'type': 'string'}}}}}}
  15. },
  16. 'parameters': []
  17. }
  18. parameters = {
  19. 'path_param': 'p_param',
  20. 'query_param': 'q_param',
  21. 'cookie_param': 'c_param',
  22. 'header_param': 'h_param',
  23. 'body_param': 'b_param',
  24. }
  25. def test_api_tool(setup_http_mock):
  26. tool = ApiTool(api_bundle=tool_bundle, runtime=Tool.Runtime(credentials={'auth_type': 'none'}))
  27. headers = tool.assembling_request(parameters)
  28. response = tool.do_http_request(tool.api_bundle.server_url, tool.api_bundle.method, headers, parameters)
  29. assert response.status_code == 200
  30. assert '/p_param' == response.request.url.path
  31. assert b'query_param=q_param' == response.request.url.query
  32. assert 'h_param' == response.request.headers.get('header_param')
  33. assert 'application/json' == response.request.headers.get('content-type')
  34. assert 'cookie_param=c_param' == response.request.headers.get('cookie')
  35. assert 'b_param' in response.content.decode()