webmock 3.18.0 → 3.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/webmock/http_lib_adapters/net_http.rb +50 -29
- data/lib/webmock/version.rb +1 -1
- data/spec/acceptance/net_http/net_http_spec.rb +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a7e964f28dd42787fd854c5fcc87dba4cd61ef214c3dee485d9bd0d71fc1cdd
|
4
|
+
data.tar.gz: f6921a9b14ccd71f18b4674aca8d4d24bf377545a4ef8c56862f95cc56b6e8a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80e85d1bb83018bdaab80aed649134757ee8ac591b98e9ccf1b6df10c0d8930db167dd5fd3bb039dd56a955d22c0cc6b1a1227bb88e8f3e56d31d0e1c9d7708e
|
7
|
+
data.tar.gz: c67f1f8486d6ee932bd9d01dff2bfcec35d9c3e3ed937e50e1f56d34f664ca11db4c9399c51e82da9316245c1d4727c726b9e307646aef80477764609ecf95ee
|
data/CHANGELOG.md
CHANGED
@@ -67,57 +67,78 @@ module WebMock
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def request(request, body = nil, &block)
|
70
|
-
return super unless started?
|
71
|
-
|
72
70
|
request_signature = WebMock::NetHTTPUtility.request_signature_from_request(self, request, body)
|
73
71
|
|
74
72
|
WebMock::RequestRegistry.instance.requested_signatures.put(request_signature)
|
75
73
|
|
76
74
|
if webmock_response = WebMock::StubRegistry.instance.response_for_request(request_signature)
|
75
|
+
@socket = Net::HTTP.socket_type.new
|
77
76
|
WebMock::CallbackRegistry.invoke_callbacks(
|
78
77
|
{lib: :net_http}, request_signature, webmock_response)
|
79
78
|
build_net_http_response(webmock_response, &block)
|
80
79
|
elsif WebMock.net_connect_allowed?(request_signature.uri)
|
81
80
|
check_right_http_connection
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
81
|
+
after_request = lambda do |response|
|
82
|
+
if WebMock::CallbackRegistry.any_callbacks?
|
83
|
+
webmock_response = build_webmock_response(response)
|
84
|
+
WebMock::CallbackRegistry.invoke_callbacks(
|
85
|
+
{lib: :net_http, real_request: true}, request_signature, webmock_response)
|
86
|
+
end
|
87
|
+
response.extend Net::WebMockHTTPResponse
|
88
|
+
block.call response if block
|
89
|
+
response
|
90
|
+
end
|
91
|
+
super_with_after_request = lambda {
|
92
|
+
response = super(request, nil, &nil)
|
93
|
+
after_request.call(response)
|
94
|
+
}
|
95
|
+
if started?
|
96
|
+
ensure_actual_connection
|
97
|
+
super_with_after_request.call
|
98
|
+
else
|
99
|
+
start_with_connect {
|
100
|
+
super_with_after_request.call
|
101
|
+
}
|
92
102
|
end
|
93
|
-
|
94
|
-
response.extend Net::WebMockHTTPResponse
|
95
|
-
block.call response if block
|
96
|
-
response
|
97
103
|
else
|
98
104
|
raise WebMock::NetConnectNotAllowedError.new(request_signature)
|
99
105
|
end
|
100
106
|
end
|
101
107
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
@socket = StubSocket.new
|
108
|
+
def start_without_connect
|
109
|
+
raise IOError, 'HTTP session already opened' if @started
|
110
|
+
if block_given?
|
111
|
+
begin
|
112
|
+
@socket = Net::HTTP.socket_type.new
|
113
|
+
@started = true
|
114
|
+
return yield(self)
|
115
|
+
ensure
|
116
|
+
do_finish
|
117
|
+
end
|
113
118
|
end
|
119
|
+
@socket = Net::HTTP.socket_type.new
|
120
|
+
@started = true
|
121
|
+
self
|
114
122
|
end
|
115
123
|
|
116
|
-
|
124
|
+
|
125
|
+
def ensure_actual_connection
|
117
126
|
if @socket.is_a?(StubSocket)
|
118
127
|
@socket&.close
|
119
128
|
@socket = nil
|
120
|
-
|
129
|
+
do_start
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
alias_method :start_with_connect, :start
|
134
|
+
|
135
|
+
def start(&block)
|
136
|
+
uri = Addressable::URI.parse(WebMock::NetHTTPUtility.get_uri(self))
|
137
|
+
|
138
|
+
if WebMock.net_http_connect_on_start?(uri)
|
139
|
+
super(&block)
|
140
|
+
else
|
141
|
+
start_without_connect(&block)
|
121
142
|
end
|
122
143
|
end
|
123
144
|
|
data/lib/webmock/version.rb
CHANGED
@@ -198,14 +198,14 @@ describe "Net:HTTP" do
|
|
198
198
|
|
199
199
|
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.7.0')
|
200
200
|
it "uses the StubSocket to provide IP address" do
|
201
|
-
Net::HTTP.start("example.com") do |http|
|
201
|
+
Net::HTTP.start("http://example.com") do |http|
|
202
202
|
expect(http.ipaddr).to eq("127.0.0.1")
|
203
203
|
end
|
204
204
|
end
|
205
205
|
end
|
206
206
|
|
207
207
|
it "defines common socket methods" do
|
208
|
-
Net::HTTP.start("example.com") do |http|
|
208
|
+
Net::HTTP.start("http://example.com") do |http|
|
209
209
|
socket = http.instance_variable_get(:@socket)
|
210
210
|
expect(socket.io.ssl_version).to eq("TLSv1.3")
|
211
211
|
expect(socket.io.cipher).to eq(["TLS_AES_128_GCM_SHA256", "TLSv1.3", 128, 128])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webmock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.18.
|
4
|
+
version: 3.18.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bartosz Blimke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -421,9 +421,9 @@ licenses:
|
|
421
421
|
- MIT
|
422
422
|
metadata:
|
423
423
|
bug_tracker_uri: https://github.com/bblimke/webmock/issues
|
424
|
-
changelog_uri: https://github.com/bblimke/webmock/blob/v3.18.
|
425
|
-
documentation_uri: https://www.rubydoc.info/gems/webmock/3.18.
|
426
|
-
source_code_uri: https://github.com/bblimke/webmock/tree/v3.18.
|
424
|
+
changelog_uri: https://github.com/bblimke/webmock/blob/v3.18.1/CHANGELOG.md
|
425
|
+
documentation_uri: https://www.rubydoc.info/gems/webmock/3.18.1
|
426
|
+
source_code_uri: https://github.com/bblimke/webmock/tree/v3.18.1
|
427
427
|
wiki_uri: https://github.com/bblimke/webmock/wiki
|
428
428
|
post_install_message:
|
429
429
|
rdoc_options: []
|
@@ -440,7 +440,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
440
440
|
- !ruby/object:Gem::Version
|
441
441
|
version: '0'
|
442
442
|
requirements: []
|
443
|
-
rubygems_version: 3.
|
443
|
+
rubygems_version: 3.1.2
|
444
444
|
signing_key:
|
445
445
|
specification_version: 4
|
446
446
|
summary: Library for stubbing HTTP requests in Ruby.
|