33 lines
1 KiB
Ruby
33 lines
1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
# Webmock overwrites the Net::HTTP#request method with
|
||
|
# https://github.com/bblimke/webmock/blob/867f4b290fd133658aa9530cba4ba8b8c52c0d35/lib/webmock/http_lib_adapters/net_http.rb#L74
|
||
|
# Net::HTTP#request usually calls Net::HTTP#connect but the Webmock overwrite doesn't.
|
||
|
# This makes sure that, in a test environment, the superclass is the Webmock overwrite.
|
||
|
parent_class = if defined?(WebMock) && Rails.env.test?
|
||
|
WebMock::HttpLibAdapters::NetHttpAdapter.instance_variable_get('@webMockNetHTTP')
|
||
|
else
|
||
|
Net::HTTP
|
||
|
end
|
||
|
|
||
|
class NetHttpAdapter < parent_class
|
||
|
extend ::Gitlab::Utils::Override
|
||
|
|
||
|
private
|
||
|
|
||
|
override :connect
|
||
|
def connect
|
||
|
result = super
|
||
|
|
||
|
@socket = Gitlab::BufferedIo.new(@socket.io,
|
||
|
read_timeout: @socket.read_timeout,
|
||
|
write_timeout: @socket.write_timeout,
|
||
|
continue_timeout: @socket.continue_timeout,
|
||
|
debug_output: @socket.debug_output)
|
||
|
|
||
|
result
|
||
|
end
|
||
|
end
|
||
|
end
|