webmock 3.7.4 → 3.8.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1686147ccfab8544a31edc2663ec653fd612ec24956b10efa792936017b8c93
4
- data.tar.gz: 3cbd58ba37e68fde487a868dcc04a1587ef4b3bad15890d14840aedf259e9035
3
+ metadata.gz: e810298e20d5299b4db93de105d6bfd2928db868ed70d6113e1e308091130f7c
4
+ data.tar.gz: d35d0053907cb949df0a891e9b9e6e4f2c62143651fc2b19a2d02192fb1d6f91
5
5
  SHA512:
6
- metadata.gz: 9ad2b810e3a37bbc275ec55b609497c8c291fb8d8443f4592d0b9c064493aaefcbdee4f2ed63e1cce943d74691185026b1845c99b4da40248293b4d5def34f44
7
- data.tar.gz: fe611e11baff4dcb0b6abdc15c363a49e3f63041e505a09e602a3c014064e7b5105ad3ca3f5dd0273fd5d9e22c103cc0e294282d61193456acc890ba8aac7495
6
+ metadata.gz: f42ea1b65f3203df24d0dc5cf39204274c30339eb8831bc95570da25cc497cb51bb9cc696636a437b941aea050940574d01c6632dbe9db29bd67f67eab2e15d9
7
+ data.tar.gz: 902b36dd0712ecafe4e26eca7416e6444638ea2687a86b434382428a6158c6b7a9155b17b62c30755712cc5cf51985482b6d7c386461d11ed5ade0afa069b45c
@@ -1,11 +1,11 @@
1
1
  before_install:
2
- - gem update --system
3
- - gem update bundler
2
+ - gem update --system -N
4
3
  rvm:
5
4
  - 2.3.8
6
5
  - 2.4.6
7
6
  - 2.5.5
8
7
  - 2.6.3
8
+ - 2.7.0
9
9
  - rbx-2
10
10
  - ruby-head
11
11
  - jruby-9.1.17.0
@@ -1,5 +1,39 @@
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
+
25
+ ## 3.7.6
26
+
27
+ * Suppressed keyword argument warnings in Ruby 2.7 in async-http adapter.
28
+
29
+ Thanks to [Koichi ITO](https://github.com/koic)
30
+
31
+ ## 3.7.5
32
+
33
+ * Suppress Excon warning generated by extra key
34
+
35
+ Thanks to [Marco Costa](https://github.com/marcotc)
36
+
3
37
  ## 3.7.4
4
38
 
5
39
  * Resetting memoized response fields in Curb adapter.
data/README.md CHANGED
@@ -43,6 +43,7 @@ Supported Ruby Interpreters
43
43
  * MRI 2.4
44
44
  * MRI 2.5
45
45
  * MRI 2.6
46
+ * MRI 2.7
46
47
  * JRuby
47
48
  * Rubinius
48
49
 
@@ -1113,7 +1114,12 @@ People who submitted patches and new features or suggested improvements. Many th
1113
1114
  * Alex Junger
1114
1115
  * Orien Madgwick
1115
1116
  * Andrei Sidorov
1116
-
1117
+ * Marco Costa
1118
+ * Ryan Davis
1119
+ * Brandur
1120
+ * Samuel Williams
1121
+ * Patrik Ragnarsson
1122
+ * Alex Coomans
1117
1123
 
1118
1124
  For a full list of contributors you can visit the
1119
1125
  [contributors](https://github.com/bblimke/webmock/contributors) page.
@@ -36,12 +36,12 @@ if defined?(Async::HTTP)
36
36
  protocol = endpoint.protocol,
37
37
  scheme = endpoint.scheme,
38
38
  authority = endpoint.authority,
39
- options = {}
39
+ **options
40
40
  )
41
41
  webmock_endpoint = WebMockEndpoint.new(scheme, authority, protocol)
42
42
 
43
- @network_client = WebMockClient.new(endpoint, protocol, scheme, authority, options)
44
- @webmock_client = WebMockClient.new(webmock_endpoint, protocol, scheme, authority, options)
43
+ @network_client = WebMockClient.new(endpoint, protocol, scheme, authority, **options)
44
+ @webmock_client = WebMockClient.new(webmock_endpoint, protocol, scheme, authority, **options)
45
45
 
46
46
  @scheme = scheme
47
47
  @authority = authority
@@ -159,4 +159,7 @@ if defined?(Excon)
159
159
  end
160
160
  end
161
161
  end
162
+
163
+ # Suppresses Excon connection argument validation warning
164
+ Excon::VALID_CONNECTION_KEYS << :__construction_args
162
165
  end
@@ -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
- super
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
- current_thread_id = Thread.current.object_id
277
-
278
- trace = TracePoint.trace(:line) do |tp|
279
- next unless Thread.current.object_id == current_thread_id
280
- if tp.binding.local_variable_defined?(:tmp)
281
- tp.binding.local_variable_set(:tmp, nil)
282
- end
283
- end
284
-
285
- super
286
- ensure
287
- trace.disable
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
@@ -1,3 +1,3 @@
1
1
  module WebMock
2
- VERSION = '3.7.4' unless defined?(::WebMock::VERSION)
2
+ VERSION = '3.8.2' unless defined?(::WebMock::VERSION)
3
3
  end
@@ -28,6 +28,8 @@ module ExconSpecHelper
28
28
  res
29
29
  end
30
30
 
31
+ Excon.set_raise_on_warnings!(true)
32
+
31
33
  OpenStruct.new \
32
34
  body: response.body,
33
35
  headers: headers,
@@ -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.7.4
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: 2019-09-16 00:00:00.000000000 Z
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.7.4/CHANGELOG.md
411
- documentation_uri: https://www.rubydoc.info/gems/webmock/3.7.4
412
- source_code_uri: https://github.com/bblimke/webmock/tree/v3.7.4
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.0.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.