webmock 3.20.0 → 3.21.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -1
- data/README.md +10 -1
- data/lib/webmock/http_lib_adapters/httpclient_adapter.rb +4 -4
- data/lib/webmock/http_lib_adapters/net_http.rb +4 -2
- data/lib/webmock/rack_response.rb +3 -1
- data/lib/webmock/response.rb +4 -4
- data/lib/webmock/version.rb +1 -1
- 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: ad4b861d9b998186e2b85f1da5e35dce4451d13d16822cf35f42d52fbce40de0
|
4
|
+
data.tar.gz: e7395eb84a1688a56f6916b4a58992cf1a88bcee695eb2e7f015260d33d3c677
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1599e16d961cf7a5a87fe2ac9030cd33ccb5d20d645832e317a36cbad45e4d4836cd506016d0f5a5a5ee69c502e7993ed8a33c6fce080b9a40aa5626f2a212b5
|
7
|
+
data.tar.gz: 044b1c3bc0ec98535f4949649984b33475390a1f5b4213abba21a61c357d93173088214c3e5dd4ef943ac21800485cd078ad5ef2bc722c7563c9fa8b5fd80ea5
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,27 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
# 3.21.2
|
4
|
+
|
5
|
+
* Corrected type checking in `WebMock::Response#assert_valid_body!` to accurately recognize `Hash` objects. Additionally, improved the clarity of the error message for unsupported body types, guiding users towards proper usage.
|
6
|
+
|
7
|
+
Thanks to [Jake Robb](https://github.com/jakerobb) for reporting.
|
8
|
+
|
9
|
+
# 3.21.1
|
10
|
+
|
11
|
+
* The stubbed Net::HTTPResponse#uri now returns request.uri, aligning it with the behavior of an actual Net::HTTPResponse.
|
12
|
+
|
13
|
+
Thanks to [Abe Voelker](https://github.com/abevoelker) for reporting and to [Victor Maslov](https://github.com/Nakilon) and [Gio Lodi](https://github.com/mokagio) for the suggested solution.
|
14
|
+
|
15
|
+
# 3.21.0
|
16
|
+
|
17
|
+
* Don't use deprecated Rack::VERSION for Rack >= 3
|
18
|
+
|
19
|
+
Thanks to [Étienne Barrié](https://github.com/etiennebarrie)
|
20
|
+
|
21
|
+
* Updated HTTPClient adapter, to build request signature using the URI after filters have been applied.
|
22
|
+
|
23
|
+
Thanks to [Matt Brown](https://github.com/mattbnz)
|
24
|
+
|
3
25
|
# 3.20.0
|
4
26
|
|
5
27
|
* Optimised EmHttpRequestAdapter performance.
|
@@ -178,7 +200,7 @@
|
|
178
200
|
|
179
201
|
* Fixed async-http adapter to only considered requests as real if they are real.
|
180
202
|
|
181
|
-
Thanks to
|
203
|
+
Thanks to [Tony Schneider](https://github.com/tonywok) and [Samuel Williams](https://github.com/ioquatix)
|
182
204
|
|
183
205
|
# 3.11.2
|
184
206
|
|
data/README.md
CHANGED
@@ -606,7 +606,11 @@ which can be passed to `WebMock.allow_net_connect!` and `WebMock.disable_net_con
|
|
606
606
|
WebMock.allow_net_connect!(net_http_connect_on_start: true)
|
607
607
|
```
|
608
608
|
|
609
|
-
This forces WebMock Net::HTTP adapter to always connect on `Net::HTTP.start`.
|
609
|
+
This forces WebMock Net::HTTP adapter to always connect on `Net::HTTP.start`. At the time of connection being made there is no information about the request or URL yet, therefore WebMock is not able to decide whether to stub a request or not and all connections are allowed. To enable connections only to a specific domain (e.g. your test server) use:
|
610
|
+
|
611
|
+
```ruby
|
612
|
+
WebMock.allow_net_connect!(net_http_connect_on_start: "www.example.com")
|
613
|
+
```
|
610
614
|
|
611
615
|
## Setting Expectations
|
612
616
|
|
@@ -1193,6 +1197,11 @@ People who submitted patches and new features or suggested improvements. Many th
|
|
1193
1197
|
* Earlopain
|
1194
1198
|
* James Brown
|
1195
1199
|
* Kazuhiro NISHIYAMA
|
1200
|
+
* Étienne Barrié
|
1201
|
+
* Matt Brown
|
1202
|
+
* Victor Maslov
|
1203
|
+
* Gio Lodi
|
1204
|
+
* Ryan Brooks
|
1196
1205
|
|
1197
1206
|
For a full list of contributors you can visit the
|
1198
1207
|
[contributors](https://github.com/bblimke/webmock/contributors) page.
|
@@ -157,14 +157,14 @@ if defined?(::HTTPClient)
|
|
157
157
|
end
|
158
158
|
|
159
159
|
def build_request_signature(req, reuse_existing = false)
|
160
|
-
uri = WebMock::Util::URI.heuristic_parse(req.header.request_uri.to_s)
|
161
|
-
uri.query = WebMock::Util::QueryMapper.values_to_query(req.header.request_query, notation: WebMock::Config.instance.query_values_notation) if req.header.request_query
|
162
|
-
uri.port = req.header.request_uri.port
|
163
|
-
|
164
160
|
@request_filter.each do |filter|
|
165
161
|
filter.filter_request(req)
|
166
162
|
end
|
167
163
|
|
164
|
+
uri = WebMock::Util::URI.heuristic_parse(req.header.request_uri.to_s)
|
165
|
+
uri.query = WebMock::Util::QueryMapper.values_to_query(req.header.request_query, notation: WebMock::Config.instance.query_values_notation) if req.header.request_query
|
166
|
+
uri.port = req.header.request_uri.port
|
167
|
+
|
168
168
|
headers = req.header.all.inject({}) do |hdrs, header|
|
169
169
|
hdrs[header[0]] ||= []
|
170
170
|
hdrs[header[0]] << header[1]
|
@@ -77,7 +77,7 @@ module WebMock
|
|
77
77
|
@socket = Net::HTTP.socket_type.new
|
78
78
|
WebMock::CallbackRegistry.invoke_callbacks(
|
79
79
|
{lib: :net_http}, request_signature, webmock_response)
|
80
|
-
build_net_http_response(webmock_response, &block)
|
80
|
+
build_net_http_response(webmock_response, request.uri, &block)
|
81
81
|
elsif WebMock.net_connect_allowed?(request_signature.uri)
|
82
82
|
check_right_http_connection
|
83
83
|
after_request = lambda do |response|
|
@@ -144,7 +144,7 @@ module WebMock
|
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
|
-
def build_net_http_response(webmock_response, &block)
|
147
|
+
def build_net_http_response(webmock_response, request_uri, &block)
|
148
148
|
response = Net::HTTPResponse.send(:response_class, webmock_response.status[0].to_s).new("1.0", webmock_response.status[0].to_s, webmock_response.status[1])
|
149
149
|
body = webmock_response.body
|
150
150
|
body = nil if webmock_response.status[0].to_s == '204'
|
@@ -159,6 +159,8 @@ module WebMock
|
|
159
159
|
|
160
160
|
response.instance_variable_set(:@read, true)
|
161
161
|
|
162
|
+
response.uri = request_uri
|
163
|
+
|
162
164
|
response.extend Net::WebMockHTTPResponse
|
163
165
|
|
164
166
|
if webmock_response.should_timeout
|
@@ -47,7 +47,9 @@ module WebMock
|
|
47
47
|
# Rack-specific variables
|
48
48
|
env['rack.input'] = StringIO.new(body)
|
49
49
|
env['rack.errors'] = $stderr
|
50
|
-
|
50
|
+
if !Rack.const_defined?(:RELEASE) || Rack::RELEASE < "3"
|
51
|
+
env['rack.version'] = Rack::VERSION
|
52
|
+
end
|
51
53
|
env['rack.url_scheme'] = uri.scheme
|
52
54
|
env['rack.run_once'] = true
|
53
55
|
env['rack.session'] = session
|
data/lib/webmock/response.rb
CHANGED
@@ -117,11 +117,11 @@ module WebMock
|
|
117
117
|
return if @body.nil?
|
118
118
|
return if valid_types.any? { |c| @body.is_a?(c) }
|
119
119
|
|
120
|
-
if @body.
|
121
|
-
raise InvalidBody, "must be one of: #{valid_types}, but you've used a #{@body.class}
|
122
|
-
"
|
120
|
+
if @body.is_a?(Hash)
|
121
|
+
raise InvalidBody, "must be one of: #{valid_types}, but you've used a #{@body.class}. " \
|
122
|
+
"Please convert it by calling .to_json .to_xml, or otherwise convert it to a string."
|
123
123
|
else
|
124
|
-
raise InvalidBody, "must be one of: #{valid_types}. '#{@body.class}' given"
|
124
|
+
raise InvalidBody, "must be one of: #{valid_types}. '#{@body.class}' given."
|
125
125
|
end
|
126
126
|
end
|
127
127
|
|
data/lib/webmock/version.rb
CHANGED
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.
|
4
|
+
version: 3.21.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bartosz Blimke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-02-
|
11
|
+
date: 2024-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -371,9 +371,9 @@ licenses:
|
|
371
371
|
- MIT
|
372
372
|
metadata:
|
373
373
|
bug_tracker_uri: https://github.com/bblimke/webmock/issues
|
374
|
-
changelog_uri: https://github.com/bblimke/webmock/blob/v3.
|
375
|
-
documentation_uri: https://www.rubydoc.info/gems/webmock/3.
|
376
|
-
source_code_uri: https://github.com/bblimke/webmock/tree/v3.
|
374
|
+
changelog_uri: https://github.com/bblimke/webmock/blob/v3.21.2/CHANGELOG.md
|
375
|
+
documentation_uri: https://www.rubydoc.info/gems/webmock/3.21.2
|
376
|
+
source_code_uri: https://github.com/bblimke/webmock/tree/v3.21.2
|
377
377
|
wiki_uri: https://github.com/bblimke/webmock/wiki
|
378
378
|
post_install_message:
|
379
379
|
rdoc_options: []
|
@@ -390,7 +390,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
390
390
|
- !ruby/object:Gem::Version
|
391
391
|
version: '0'
|
392
392
|
requirements: []
|
393
|
-
rubygems_version: 3.5.
|
393
|
+
rubygems_version: 3.5.6
|
394
394
|
signing_key:
|
395
395
|
specification_version: 4
|
396
396
|
summary: Library for stubbing HTTP requests in Ruby.
|