webmock 3.7.6 → 3.8.2
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/.travis.yml +2 -4
- data/CHANGELOG.md +22 -0
- data/README.md +5 -0
- data/lib/webmock/http_lib_adapters/async_http_client_adapter.rb +1 -1
- data/lib/webmock/http_lib_adapters/http_rb/response.rb +11 -1
- data/lib/webmock/http_lib_adapters/net_http.rb +26 -16
- data/lib/webmock/version.rb +1 -1
- data/spec/acceptance/http_rb/http_rb_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: e810298e20d5299b4db93de105d6bfd2928db868ed70d6113e1e308091130f7c
|
4
|
+
data.tar.gz: d35d0053907cb949df0a891e9b9e6e4f2c62143651fc2b19a2d02192fb1d6f91
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f42ea1b65f3203df24d0dc5cf39204274c30339eb8831bc95570da25cc497cb51bb9cc696636a437b941aea050940574d01c6632dbe9db29bd67f67eab2e15d9
|
7
|
+
data.tar.gz: 902b36dd0712ecafe4e26eca7416e6444638ea2687a86b434382428a6158c6b7a9155b17b62c30755712cc5cf51985482b6d7c386461d11ed5ade0afa069b45c
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,27 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.8.2
|
4
|
+
|
5
|
+
* Support correct encoding parameter for HTTP.rb 2.x and earlier
|
6
|
+
|
7
|
+
Thanks to [Alex Coomans](https://github.com/drcapulet)
|
8
|
+
|
9
|
+
## 3.8.1
|
10
|
+
|
11
|
+
* Added support for mocking non-ASCII bodies when making requests with HTTP.rb
|
12
|
+
|
13
|
+
Thanks to [Patrik Ragnarsson](https://github.com/dentarg)
|
14
|
+
|
15
|
+
## 3.8.0
|
16
|
+
|
17
|
+
* Fixed options handling when initialising Async::HTTP::Client
|
18
|
+
|
19
|
+
Thanks to [Samuel Williams](https://github.com/ioquatix)
|
20
|
+
|
21
|
+
* Ruby 2.7 support.
|
22
|
+
|
23
|
+
Thanks to [Ryan Davis](https://github.com/zenspider) and [Brandur](https://github.com/brandur)
|
24
|
+
|
3
25
|
## 3.7.6
|
4
26
|
|
5
27
|
* Suppressed keyword argument warnings in Ruby 2.7 in async-http adapter.
|
data/README.md
CHANGED
@@ -1115,6 +1115,11 @@ People who submitted patches and new features or suggested improvements. Many th
|
|
1115
1115
|
* Orien Madgwick
|
1116
1116
|
* Andrei Sidorov
|
1117
1117
|
* Marco Costa
|
1118
|
+
* Ryan Davis
|
1119
|
+
* Brandur
|
1120
|
+
* Samuel Williams
|
1121
|
+
* Patrik Ragnarsson
|
1122
|
+
* Alex Coomans
|
1118
1123
|
|
1119
1124
|
For a full list of contributors you can visit the
|
1120
1125
|
[contributors](https://github.com/bblimke/webmock/contributors) page.
|
@@ -14,9 +14,19 @@ module HTTP
|
|
14
14
|
def from_webmock(webmock_response, request_signature = nil)
|
15
15
|
status = Status.new(webmock_response.status.first)
|
16
16
|
headers = webmock_response.headers || {}
|
17
|
-
body = Body.new Streamer.new webmock_response.body
|
18
17
|
uri = normalize_uri(request_signature && request_signature.uri)
|
19
18
|
|
19
|
+
# HTTP.rb 3.0+ uses a keyword argument to pass the encoding, but 1.x
|
20
|
+
# and 2.x use a positional argument, and 0.x don't support supplying
|
21
|
+
# the encoding.
|
22
|
+
body = if HTTP::VERSION < "1.0.0"
|
23
|
+
Body.new(Streamer.new(webmock_response.body))
|
24
|
+
elsif HTTP::VERSION < "3.0.0"
|
25
|
+
Body.new(Streamer.new(webmock_response.body), webmock_response.body.encoding)
|
26
|
+
else
|
27
|
+
Body.new(Streamer.new(webmock_response.body), encoding: webmock_response.body.encoding)
|
28
|
+
end
|
29
|
+
|
20
30
|
return new(status, "1.1", headers, body, uri) if HTTP::VERSION < "1.0.0"
|
21
31
|
|
22
32
|
new({
|
@@ -228,9 +228,9 @@ class PatchedStringIO < StringIO #:nodoc:
|
|
228
228
|
|
229
229
|
alias_method :orig_read_nonblock, :read_nonblock
|
230
230
|
|
231
|
-
def read_nonblock(size, *args)
|
231
|
+
def read_nonblock(size, *args, **kwargs)
|
232
232
|
args.reject! {|arg| !arg.is_a?(Hash)}
|
233
|
-
orig_read_nonblock(size, *args)
|
233
|
+
orig_read_nonblock(size, *args, **kwargs)
|
234
234
|
end
|
235
235
|
|
236
236
|
end
|
@@ -257,7 +257,7 @@ end
|
|
257
257
|
module Net #:nodoc: all
|
258
258
|
|
259
259
|
class WebMockNetBufferedIO < BufferedIO
|
260
|
-
def initialize(io, *args)
|
260
|
+
def initialize(io, *args, **kwargs)
|
261
261
|
io = case io
|
262
262
|
when Socket, OpenSSL::SSL::SSLSocket, IO
|
263
263
|
io
|
@@ -268,23 +268,33 @@ module Net #:nodoc: all
|
|
268
268
|
end
|
269
269
|
raise "Unable to create local socket" unless io
|
270
270
|
|
271
|
-
|
271
|
+
# Prior to 2.4.0 `BufferedIO` only takes a single argument (`io`) with no
|
272
|
+
# options. Here we pass through our full set of arguments only if we're
|
273
|
+
# on 2.4.0 or later, and use a simplified invocation otherwise.
|
274
|
+
if RUBY_VERSION >= '2.4.0'
|
275
|
+
super
|
276
|
+
else
|
277
|
+
super(io)
|
278
|
+
end
|
272
279
|
end
|
273
280
|
|
274
281
|
if RUBY_VERSION >= '2.6.0'
|
282
|
+
# https://github.com/ruby/ruby/blob/7d02441f0d6e5c9d0a73a024519eba4f69e36dce/lib/net/protocol.rb#L208
|
283
|
+
# Modified version of method from ruby, so that nil is always passed into orig_read_nonblock to avoid timeout
|
275
284
|
def rbuf_fill
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
285
|
+
case rv = @io.read_nonblock(BUFSIZE, nil, exception: false)
|
286
|
+
when String
|
287
|
+
return if rv.nil?
|
288
|
+
@rbuf << rv
|
289
|
+
rv.clear
|
290
|
+
return
|
291
|
+
when :wait_readable
|
292
|
+
@io.to_io.wait_readable(@read_timeout) or raise Net::ReadTimeout
|
293
|
+
when :wait_writable
|
294
|
+
@io.to_io.wait_writable(@read_timeout) or raise Net::ReadTimeout
|
295
|
+
when nil
|
296
|
+
raise EOFError, 'end of file reached'
|
297
|
+
end while true
|
288
298
|
end
|
289
299
|
end
|
290
300
|
end
|
data/lib/webmock/version.rb
CHANGED
@@ -74,13 +74,13 @@ describe "HTTP.rb" do
|
|
74
74
|
context "streamer" do
|
75
75
|
it "can be read to a provided buffer" do
|
76
76
|
stub_request(:get, "example.com/foo")
|
77
|
-
.to_return(status: 200, body: "Hello world!")
|
77
|
+
.to_return(status: 200, body: "Hello world! ")
|
78
78
|
response = HTTP.get "http://example.com/foo"
|
79
79
|
|
80
80
|
buffer = ""
|
81
81
|
response.body.readpartial(1024, buffer)
|
82
82
|
|
83
|
-
expect(buffer).to eq "Hello world!"
|
83
|
+
expect(buffer).to eq "Hello world! "
|
84
84
|
end
|
85
85
|
|
86
86
|
it "can be closed" do
|
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.8.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:
|
11
|
+
date: 2020-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -407,9 +407,9 @@ licenses:
|
|
407
407
|
- MIT
|
408
408
|
metadata:
|
409
409
|
bug_tracker_uri: https://github.com/bblimke/webmock/issues
|
410
|
-
changelog_uri: https://github.com/bblimke/webmock/blob/v3.
|
411
|
-
documentation_uri: https://www.rubydoc.info/gems/webmock/3.
|
412
|
-
source_code_uri: https://github.com/bblimke/webmock/tree/v3.
|
410
|
+
changelog_uri: https://github.com/bblimke/webmock/blob/v3.8.2/CHANGELOG.md
|
411
|
+
documentation_uri: https://www.rubydoc.info/gems/webmock/3.8.2
|
412
|
+
source_code_uri: https://github.com/bblimke/webmock/tree/v3.8.2
|
413
413
|
wiki_uri: https://github.com/bblimke/webmock/wiki
|
414
414
|
post_install_message:
|
415
415
|
rdoc_options: []
|
@@ -426,7 +426,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
426
426
|
- !ruby/object:Gem::Version
|
427
427
|
version: '0'
|
428
428
|
requirements: []
|
429
|
-
rubygems_version: 3.
|
429
|
+
rubygems_version: 3.1.2
|
430
430
|
signing_key:
|
431
431
|
specification_version: 4
|
432
432
|
summary: Library for stubbing HTTP requests in Ruby.
|