module WebMock::HttpLibAdapters::Plugin

  1. lib/httpx/adapters/webmock.rb

HTTPX plugin for webmock.

Requests are “hijacked” at the session, before they’re distributed to a connection.

Public Class methods

build_error_response(request, exception)
[show source]
   # File lib/httpx/adapters/webmock.rb
52 def build_error_response(request, exception)
53   HTTPX::ErrorResponse.new(request, exception)
54 end
build_from_webmock_response(request, webmock_response)
[show source]
   # File lib/httpx/adapters/webmock.rb
36 def build_from_webmock_response(request, webmock_response)
37   return build_error_response(request, HTTPX::TimeoutError.new(1, "Timed out")) if webmock_response.should_timeout
38 
39   return build_error_response(request, webmock_response.exception) if webmock_response.exception
40 
41   request
42     .options
43     .response_class
44     .new(
45       request,
46       webmock_response.status[0],
47       "2.0",
48       webmock_response.headers
49     ).tap(&:mock!)
50 end
build_webmock_request_signature(request)
[show source]
   # File lib/httpx/adapters/webmock.rb
15 def build_webmock_request_signature(request)
16   uri = WebMock::Util::URI.heuristic_parse(request.uri)
17   uri.query = request.query
18   uri.path = uri.normalized_path.gsub("[^:]//", "/")
19 
20   WebMock::RequestSignature.new(
21     request.verb.downcase.to_sym,
22     uri.to_s,
23     body: request.body.to_s,
24     headers: request.headers.to_h
25   )
26 end
build_webmock_response(_request, response)
[show source]
   # File lib/httpx/adapters/webmock.rb
28 def build_webmock_response(_request, response)
29   webmock_response = WebMock::Response.new
30   webmock_response.status = [response.status, HTTP_REASONS[response.status]]
31   webmock_response.body = response.body.to_s
32   webmock_response.headers = response.headers.to_h
33   webmock_response
34 end