Sha256: 2a10987ce10bc7ecf45e6c67fcee43ae78425538d03d479898448cc31f48ea60

Contents?: true

Size: 1.34 KB

Versions: 31

Compression:

Stored size: 1.34 KB

Contents

require 'ostruct'

module PatronSpecHelper
  def http_request(method, uri, options = {}, &block)
    method = method.to_sym
    uri = Addressable::URI.heuristic_parse(uri)
    sess = Patron::Session.new
    sess.base_url = "#{uri.omit(:path, :query).normalize.to_s}".gsub(/\/$/,"")

    if options[:basic_auth]
      sess.username = options[:basic_auth][0]
      sess.password = options[:basic_auth][1]
    end

    sess.connect_timeout = 30
    sess.timeout = 30
    sess.max_redirects = 0
    uri = "#{uri.path}#{uri.query ? '?' : ''}#{uri.query}"
    uri = uri.gsub(' ','%20')
    response = sess.request(method, uri, options[:headers] || {}, {
      data: options[:body]
    })
    headers = {}
    if response.headers
      response.headers.each do |k,v|
        v = v.join(", ") if v.is_a?(Array)
        headers[k] = v
      end
    end

    status_line_pattern = %r(\AHTTP/(\d+(\.\d+)?)\s+(\d\d\d)\s*([^\r\n]+)?)
    message = response.status_line.match(status_line_pattern)[4] || ""

    OpenStruct.new({
      body: response.body,
      headers: WebMock::Util::Headers.normalize_headers(headers),
      status: response.status.to_s,
      message: message
    })
  end

  def client_timeout_exception_class
    Patron::TimeoutError
  end

  def connection_refused_exception_class
    Patron::ConnectionFailed
  end

  def http_library
    :patron
  end

end

Version data entries

31 entries across 31 versions & 3 rubygems

Version Path
fluent-plugin-google-cloud-logging-on-prem-0.1.0 vendor/ruby/3.1.0/gems/webmock-3.18.1/spec/acceptance/patron/patron_spec_helper.rb
webmock-3.18.1 spec/acceptance/patron/patron_spec_helper.rb
webmock-3.18.0 spec/acceptance/patron/patron_spec_helper.rb
webmock-3.15.2 spec/acceptance/patron/patron_spec_helper.rb
webmock-3.16.2 spec/acceptance/patron/patron_spec_helper.rb
webmock-3.16.1 spec/acceptance/patron/patron_spec_helper.rb
webmock-3.15.1 spec/acceptance/patron/patron_spec_helper.rb
webmock-3.17.1 spec/acceptance/patron/patron_spec_helper.rb
webmock-3.17.0 spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.2.1.beta vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.2.0 vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.2.0.beta vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.1.26.beta vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.1.25.beta vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.1.24.beta vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.1.23.beta vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.1.22.beta vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.1.21.beta vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
logstash-output-scalyr-0.1.20.beta vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb
webmock-3.14.0 spec/acceptance/patron/patron_spec_helper.rb