webmock 3.9.3 → 3.9.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a87447f51d9795b044f000997ec83ce2d5673373a7a06dec331fa2de9d008bf
4
- data.tar.gz: 5122a5da6a3914b138f1f1e1e690d82f1634f92af63da7efe4e1ac94f48ab4bf
3
+ metadata.gz: e86a9ca126d1410e47a219ea054f8591fe421e303deb27366b0705c88d37484f
4
+ data.tar.gz: 8e35153a6620d376d86cf37c3ab85060f38265cc9c110ce6f5adbc3120af0fdf
5
5
  SHA512:
6
- metadata.gz: 8af4021d6ab4e24f09a1bccebc87c2031067c78dfadf92b3a598df0eb56742c3eed1dae935bec0abcd892082933c14114e964a95d41369d9855f7417f3d6b149
7
- data.tar.gz: 68f43e43910e6bce66eb847caca053fd94bf3fe363d838deb6e31e98b83d9013592a03d0df499f059b5473d4ad81401e6720e86ae9799a19e62f182d41ea24b0
6
+ metadata.gz: 3af5f5d03fe560dbbdf8cb974ed913568bfb8964372c44d705ae6b8956a66f9095723e9a6c8845b7fb9ce6894047cb5662c6d01f5ae832e62a17cd6bf681e6c9
7
+ data.tar.gz: bae8f2a18cf86174308dc4ab14305aca3586853e67a9b27a4fbdefbb5abee31c54ec734ff42f22a1fa974e233d69516eea96a669a511cbb342bda2e2f062e3fa
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ # 3.9.5
4
+
5
+ * Prevent overwriting `teardown` method in Test::Unit
6
+
7
+ Thanks to [Jesse Bowes](https://github.com/jessebs)
8
+
9
+ # 3.9.4
10
+
11
+ * More intuitive error message when stubbed response body was provided as Hash
12
+
13
+ Thanks to [Ben Koshy](https://github.com/BKSpurgeon)
14
+
3
15
  # 3.9.3
4
16
 
5
17
  * Make httpclient_adapter thread-safe
data/README.md CHANGED
@@ -24,16 +24,19 @@ Features
24
24
  Supported HTTP libraries
25
25
  ------------------------
26
26
 
27
- * Net::HTTP and libraries based on Net::HTTP (i.e RightHttpConnection, REST Client, HTTParty)
28
- * HTTPClient
29
- * Patron
30
- * EM-HTTP-Request
27
+ * Async::HTTP::Client
31
28
  * Curb (currently only Curb::Easy)
32
- * Typhoeus (currently only Typhoeus::Hydra)
29
+ * EM-HTTP-Request
33
30
  * Excon
34
- * HTTP Gem
31
+ * HTTPClient
32
+ * [HTTP Gem (also known as http.rb)](https://github.com/httprb/http)
35
33
  * Manticore
36
- * Async::HTTP::Client
34
+ * Net::HTTP and other libraries based on Net::HTTP, e.g.:
35
+ * HTTParty
36
+ * REST Client
37
+ * RightHttpConnection
38
+ * Patron
39
+ * Typhoeus (currently only Typhoeus::Hydra)
37
40
 
38
41
  Supported Ruby Interpreters
39
42
  ---------------------------
@@ -46,7 +49,17 @@ Supported Ruby Interpreters
46
49
 
47
50
  ## Installation
48
51
 
52
+ ```bash
49
53
  gem install webmock
54
+ ```
55
+ or alternatively:
56
+
57
+ ```ruby
58
+ # add to your Gemfile
59
+ group :test do
60
+ gem "webmock"
61
+ end
62
+ ```
50
63
 
51
64
  ### or to install the latest development version from github master
52
65
 
@@ -58,36 +71,36 @@ Supported Ruby Interpreters
58
71
 
59
72
  WebMock 2.x has changed somewhat since version 1.x. Changes are listed in [CHANGELOG.md](CHANGELOG.md)
60
73
 
61
- ### Test::Unit
74
+ ### Cucumber
62
75
 
63
- Add the following code to `test/test_helper.rb`
76
+ Create a file `features/support/webmock.rb` with the following contents:
64
77
 
65
78
  ```ruby
66
- require 'webmock/test_unit'
79
+ require 'webmock/cucumber'
67
80
  ```
68
81
 
69
- ### RSpec
82
+ ### MiniTest
70
83
 
71
- Add the following code to `spec/spec_helper`:
84
+ Add the following code to `test/test_helper`:
72
85
 
73
86
  ```ruby
74
- require 'webmock/rspec'
87
+ require 'webmock/minitest'
75
88
  ```
76
89
 
77
- ### MiniTest
90
+ ### RSpec
78
91
 
79
- Add the following code to `test/test_helper`:
92
+ Add the following code to `spec/spec_helper`:
80
93
 
81
94
  ```ruby
82
- require 'webmock/minitest'
95
+ require 'webmock/rspec'
83
96
  ```
84
97
 
85
- ### Cucumber
98
+ ### Test::Unit
86
99
 
87
- Create a file `features/support/webmock.rb` with the following contents:
100
+ Add the following code to `test/test_helper.rb`
88
101
 
89
102
  ```ruby
90
- require 'webmock/cucumber'
103
+ require 'webmock/test_unit'
91
104
  ```
92
105
 
93
106
  ### Outside a test framework
@@ -101,13 +114,10 @@ include WebMock::API
101
114
  WebMock.enable!
102
115
  ```
103
116
 
104
- ## Examples
105
-
106
-
117
+ # Examples
107
118
 
108
119
  ## Stubbing
109
120
 
110
-
111
121
  ### Stubbed request based on uri only and with the default response
112
122
 
113
123
  ```ruby
@@ -1138,6 +1148,8 @@ People who submitted patches and new features or suggested improvements. Many th
1138
1148
  * Bruno Sutic
1139
1149
  * Ryan Kerr
1140
1150
  * Adam Harwood
1151
+ * Ben Koshy
1152
+ * Jesse Bowes
1141
1153
 
1142
1154
  For a full list of contributors you can visit the
1143
1155
  [contributors](https://github.com/bblimke/webmock/contributors) page.
@@ -91,10 +91,10 @@ module WebMock
91
91
 
92
92
  def ==(other)
93
93
  self.body == other.body &&
94
- self.headers === other.headers &&
95
- self.status == other.status &&
96
- self.exception == other.exception &&
97
- self.should_timeout == other.should_timeout
94
+ self.headers === other.headers &&
95
+ self.status == other.status &&
96
+ self.exception == other.exception &&
97
+ self.should_timeout == other.should_timeout
98
98
  end
99
99
 
100
100
  private
@@ -111,7 +111,13 @@ module WebMock
111
111
  valid_types = [Proc, IO, Pathname, String, Array]
112
112
  return if @body.nil?
113
113
  return if valid_types.any? { |c| @body.is_a?(c) }
114
- raise InvalidBody, "must be one of: #{valid_types}. '#{@body.class}' given"
114
+
115
+ if @body.class.is_a?(Hash)
116
+ raise InvalidBody, "must be one of: #{valid_types}, but you've used a #{@body.class}' instead." \
117
+ "\n What shall we encode it to? try calling .to_json .to_xml instead on the hash instead, or otherwise convert it to a string."
118
+ else
119
+ raise InvalidBody, "must be one of: #{valid_types}. '#{@body.class}' given"
120
+ end
115
121
  end
116
122
 
117
123
  def read_raw_response(raw_response)
@@ -8,12 +8,10 @@ module Test
8
8
  class TestCase
9
9
  include WebMock::API
10
10
 
11
- alias_method :teardown_without_webmock, :teardown
11
+ teardown
12
12
  def teardown_with_webmock
13
- teardown_without_webmock
14
13
  WebMock.reset!
15
14
  end
16
- alias_method :teardown, :teardown_with_webmock
17
15
 
18
16
  end
19
17
  end
@@ -1,3 +1,3 @@
1
1
  module WebMock
2
- VERSION = '3.9.3' unless defined?(::WebMock::VERSION)
2
+ VERSION = '3.9.5' unless defined?(::WebMock::VERSION)
3
3
  end
@@ -130,11 +130,15 @@ describe WebMock::Response do
130
130
  # Users of webmock commonly make the mistake of stubbing the response
131
131
  # body to return a hash, to prevent this:
132
132
  #
133
- it "should error if not given one of the allowed types" do
133
+ it "should error if given a non-allowed type: a hash" do
134
134
  expect { WebMock::Response.new(body: Hash.new) }.to \
135
135
  raise_error(WebMock::Response::InvalidBody)
136
136
  end
137
137
 
138
+ it "should error if given a non-allowed type: something that is not a hash" do
139
+ expect { WebMock::Response.new(body: 123) }.to \
140
+ raise_error(WebMock::Response::InvalidBody)
141
+ end
138
142
  end
139
143
 
140
144
  describe "from raw response" do
@@ -152,12 +156,12 @@ describe WebMock::Response do
152
156
 
153
157
  it "should read headers" do
154
158
  expect(@response.headers).to eq({
155
- "Date"=>"Sat, 23 Jan 2010 01:01:05 GMT",
156
- "Content-Type"=>"text/html; charset=UTF-8",
157
- "Content-Length"=>"419",
158
- "Connection"=>"Keep-Alive",
159
- "Accept"=>"image/jpeg, image/png"
160
- })
159
+ "Date"=>"Sat, 23 Jan 2010 01:01:05 GMT",
160
+ "Content-Type"=>"text/html; charset=UTF-8",
161
+ "Content-Length"=>"419",
162
+ "Connection"=>"Keep-Alive",
163
+ "Accept"=>"image/jpeg, image/png"
164
+ })
161
165
  end
162
166
 
163
167
  it "should read body" do
@@ -182,12 +186,12 @@ describe WebMock::Response do
182
186
 
183
187
  it "should read headers" do
184
188
  expect(@response.headers).to eq({
185
- "Date"=>"Sat, 23 Jan 2010 01:01:05 GMT",
186
- "Content-Type"=>"text/html; charset=UTF-8",
187
- "Content-Length"=>"419",
188
- "Connection"=>"Keep-Alive",
189
- "Accept"=>"image/jpeg, image/png"
190
- })
189
+ "Date"=>"Sat, 23 Jan 2010 01:01:05 GMT",
190
+ "Content-Type"=>"text/html; charset=UTF-8",
191
+ "Content-Length"=>"419",
192
+ "Connection"=>"Keep-Alive",
193
+ "Accept"=>"image/jpeg, image/png"
194
+ })
191
195
  end
192
196
 
193
197
  it "should read body" do
@@ -234,11 +238,11 @@ describe WebMock::Response do
234
238
  it "should evaluate new response with evaluated options" do
235
239
  request_signature = WebMock::RequestSignature.new(:post, "www.example.com", body: "abc", headers: {'A' => 'a'})
236
240
  response = WebMock::DynamicResponse.new(lambda {|request|
237
- {
238
- body: request.body,
239
- headers: request.headers,
240
- status: 302
241
- }
241
+ {
242
+ body: request.body,
243
+ headers: request.headers,
244
+ status: 302
245
+ }
242
246
  })
243
247
  evaluated_response = response.evaluate(request_signature)
244
248
  expect(evaluated_response.body).to eq("abc")
@@ -3,4 +3,10 @@ require File.expand_path(File.dirname(__FILE__) + '/shared_test')
3
3
 
4
4
  class TestWebMock < Test::Unit::TestCase
5
5
  include SharedTest
6
+
7
+ def teardown
8
+ # Ensure global Test::Unit teardown was called
9
+ assert_empty WebMock::RequestRegistry.instance.requested_signatures.hash
10
+ assert_empty WebMock::StubRegistry.instance.request_stubs
11
+ end
6
12
  end
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.9.3
4
+ version: 3.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartosz Blimke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-16 00:00:00.000000000 Z
11
+ date: 2020-11-09 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.9.3/CHANGELOG.md
411
- documentation_uri: https://www.rubydoc.info/gems/webmock/3.9.3
412
- source_code_uri: https://github.com/bblimke/webmock/tree/v3.9.3
410
+ changelog_uri: https://github.com/bblimke/webmock/blob/v3.9.5/CHANGELOG.md
411
+ documentation_uri: https://www.rubydoc.info/gems/webmock/3.9.5
412
+ source_code_uri: https://github.com/bblimke/webmock/tree/v3.9.5
413
413
  wiki_uri: https://github.com/bblimke/webmock/wiki
414
414
  post_install_message:
415
415
  rdoc_options: []