webmock 1.8.10 → 1.8.11
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +6 -0
- data/lib/webmock/http_lib_adapters/excon_adapter.rb +10 -1
- data/lib/webmock/http_lib_adapters/net_http.rb +5 -3
- data/lib/webmock/version.rb +1 -1
- data/spec/acceptance/excon/excon_spec.rb +15 -0
- data/spec/acceptance/excon/excon_spec_helper.rb +1 -1
- data/spec/acceptance/net_http/net_http_spec.rb +1 -1
- metadata +40 -65
data/CHANGELOG.md
CHANGED
@@ -43,7 +43,16 @@ if defined?(Excon)
|
|
43
43
|
method = (params.delete(:method) || :get).to_s.downcase.to_sym
|
44
44
|
params[:query] = to_query(params[:query]) if params[:query].is_a?(Hash)
|
45
45
|
uri = Addressable::URI.new(params).to_s
|
46
|
-
WebMock::RequestSignature.new method, uri, :body => params
|
46
|
+
WebMock::RequestSignature.new method, uri, :body => body_from(params), :headers => params[:headers]
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.body_from(params)
|
50
|
+
body = params[:body]
|
51
|
+
return body unless body.respond_to?(:read)
|
52
|
+
|
53
|
+
contents = body.read
|
54
|
+
body.rewind if body.respond_to?(:rewind)
|
55
|
+
contents
|
47
56
|
end
|
48
57
|
|
49
58
|
def self.real_response(mock)
|
@@ -33,8 +33,10 @@ module WebMock
|
|
33
33
|
#in case any constants were added to @webMockNetHTTP instead of Net::HTTP
|
34
34
|
#after WebMock was enabled.
|
35
35
|
#i.e Net::HTTP::DigestAuth
|
36
|
-
|
37
|
-
OriginalNetHTTP.
|
36
|
+
@webMockNetHTTP.constants.each do |constant|
|
37
|
+
if !OriginalNetHTTP.constants.map(&:to_s).include?(constant.to_s)
|
38
|
+
OriginalNetHTTP.send(:const_set, constant, @webMockNetHTTP.const_get(constant))
|
39
|
+
end
|
38
40
|
end
|
39
41
|
end
|
40
42
|
|
@@ -64,7 +66,7 @@ module WebMock
|
|
64
66
|
|
65
67
|
if Module.method(:constants).arity != 0
|
66
68
|
def constants(inherit=true)
|
67
|
-
super + self.superclass.constants(inherit)
|
69
|
+
(super + self.superclass.constants(inherit)).uniq
|
68
70
|
end
|
69
71
|
end
|
70
72
|
end
|
data/lib/webmock/version.rb
CHANGED
@@ -11,5 +11,20 @@ describe "Excon" do
|
|
11
11
|
Excon.get('http://example.com', :path => "resource/", :query => {:a => 1, :b => 2}).body.should == "abc"
|
12
12
|
end
|
13
13
|
|
14
|
+
let(:file) { File.new(__FILE__) }
|
15
|
+
let(:file_contents) { File.new(__FILE__).read }
|
16
|
+
|
17
|
+
it 'handles file uploads correctly' do
|
18
|
+
stub_request(:put, "http://example.com/upload").with(:body => file_contents)
|
19
|
+
|
20
|
+
yielded_request_body = nil
|
21
|
+
WebMock.after_request do |req, res|
|
22
|
+
yielded_request_body = req.body
|
23
|
+
end
|
24
|
+
|
25
|
+
Excon.put("http://example.com", :path => "upload", :body => file)
|
26
|
+
|
27
|
+
yielded_request_body.should eq(file_contents)
|
28
|
+
end
|
14
29
|
end
|
15
30
|
|
@@ -7,7 +7,7 @@ module ExconSpecHelper
|
|
7
7
|
uri = Addressable::URI.heuristic_parse(uri)
|
8
8
|
uri = uri.omit(:userinfo).to_s.gsub(' ', '+')
|
9
9
|
|
10
|
-
options = options.merge(:method => method) # Dup and merge
|
10
|
+
options = options.merge(:method => method, :nonblock => false) # Dup and merge
|
11
11
|
response = Excon.new(uri).request(options, &block)
|
12
12
|
|
13
13
|
headers = WebMock::Util::Headers.normalize_headers(response.headers)
|
@@ -92,7 +92,7 @@ describe "Net:HTTP" do
|
|
92
92
|
WebMock.enable!
|
93
93
|
end
|
94
94
|
it "Net::HTTP should have the same constants" do
|
95
|
-
orig_consts_number =
|
95
|
+
orig_consts_number = WebMock::HttpLibAdapters::NetHttpAdapter::OriginalNetHTTP.constants.size
|
96
96
|
Net::HTTP.send(:const_set, "TEST_CONST", 10)
|
97
97
|
Net::HTTP.constants.size.should == orig_consts_number + 1
|
98
98
|
WebMock.disable!
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webmock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 1
|
8
7
|
- 8
|
9
|
-
-
|
10
|
-
version: 1.8.
|
8
|
+
- 11
|
9
|
+
version: 1.8.11
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Bartosz Blimke
|
@@ -15,183 +14,162 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2012-09-
|
17
|
+
date: 2012-09-29 00:00:00 +02:00
|
18
|
+
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
21
|
+
type: :runtime
|
22
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
23
|
-
none: false
|
24
23
|
requirements:
|
25
24
|
- - ">="
|
26
25
|
- !ruby/object:Gem::Version
|
27
|
-
hash: 9
|
28
26
|
segments:
|
29
27
|
- 2
|
30
28
|
- 2
|
31
29
|
- 7
|
32
30
|
version: 2.2.7
|
33
|
-
|
34
|
-
prerelease: false
|
31
|
+
name: addressable
|
35
32
|
requirement: *id001
|
33
|
+
prerelease: false
|
36
34
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
35
|
+
type: :runtime
|
38
36
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
37
|
requirements:
|
41
38
|
- - ">="
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
hash: 21
|
44
40
|
segments:
|
45
41
|
- 0
|
46
42
|
- 1
|
47
43
|
- 7
|
48
44
|
version: 0.1.7
|
49
|
-
|
50
|
-
prerelease: false
|
45
|
+
name: crack
|
51
46
|
requirement: *id002
|
47
|
+
prerelease: false
|
52
48
|
- !ruby/object:Gem::Dependency
|
53
|
-
|
49
|
+
type: :development
|
54
50
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
51
|
requirements:
|
57
52
|
- - ~>
|
58
53
|
- !ruby/object:Gem::Version
|
59
|
-
hash: 23
|
60
54
|
segments:
|
61
55
|
- 2
|
62
56
|
- 10
|
63
57
|
version: "2.10"
|
64
|
-
|
65
|
-
prerelease: false
|
58
|
+
name: rspec
|
66
59
|
requirement: *id003
|
60
|
+
prerelease: false
|
67
61
|
- !ruby/object:Gem::Dependency
|
68
|
-
|
62
|
+
type: :development
|
69
63
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
64
|
requirements:
|
72
65
|
- - ">="
|
73
66
|
- !ruby/object:Gem::Version
|
74
|
-
hash: 15
|
75
67
|
segments:
|
76
68
|
- 2
|
77
69
|
- 2
|
78
70
|
- 4
|
79
71
|
version: 2.2.4
|
80
|
-
|
81
|
-
prerelease: false
|
72
|
+
name: httpclient
|
82
73
|
requirement: *id004
|
74
|
+
prerelease: false
|
83
75
|
- !ruby/object:Gem::Dependency
|
84
|
-
|
76
|
+
type: :development
|
85
77
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
86
|
-
none: false
|
87
78
|
requirements:
|
88
79
|
- - ">="
|
89
80
|
- !ruby/object:Gem::Version
|
90
|
-
hash: 43
|
91
81
|
segments:
|
92
82
|
- 0
|
93
83
|
- 4
|
94
84
|
- 18
|
95
85
|
version: 0.4.18
|
96
|
-
|
97
|
-
prerelease: false
|
86
|
+
name: patron
|
98
87
|
requirement: *id005
|
88
|
+
prerelease: false
|
99
89
|
- !ruby/object:Gem::Dependency
|
100
|
-
|
90
|
+
type: :development
|
101
91
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
102
|
-
none: false
|
103
92
|
requirements:
|
104
93
|
- - ">="
|
105
94
|
- !ruby/object:Gem::Version
|
106
|
-
hash: 19
|
107
95
|
segments:
|
108
96
|
- 1
|
109
97
|
- 0
|
110
98
|
- 2
|
111
99
|
version: 1.0.2
|
112
|
-
|
113
|
-
prerelease: false
|
100
|
+
name: em-http-request
|
114
101
|
requirement: *id006
|
102
|
+
prerelease: false
|
115
103
|
- !ruby/object:Gem::Dependency
|
116
|
-
|
104
|
+
type: :development
|
117
105
|
version_requirements: &id007 !ruby/object:Gem::Requirement
|
118
|
-
none: false
|
119
106
|
requirements:
|
120
107
|
- - ">="
|
121
108
|
- !ruby/object:Gem::Version
|
122
|
-
hash: 63
|
123
109
|
segments:
|
124
110
|
- 0
|
125
111
|
- 8
|
126
112
|
- 0
|
127
113
|
version: 0.8.0
|
128
|
-
|
129
|
-
prerelease: false
|
114
|
+
name: curb
|
130
115
|
requirement: *id007
|
116
|
+
prerelease: false
|
131
117
|
- !ruby/object:Gem::Dependency
|
132
|
-
|
118
|
+
type: :development
|
133
119
|
version_requirements: &id008 !ruby/object:Gem::Requirement
|
134
|
-
none: false
|
135
120
|
requirements:
|
136
121
|
- - ">="
|
137
122
|
- !ruby/object:Gem::Version
|
138
|
-
hash: 21
|
139
123
|
segments:
|
140
124
|
- 0
|
141
125
|
- 3
|
142
126
|
- 3
|
143
127
|
version: 0.3.3
|
144
|
-
|
145
|
-
prerelease: false
|
128
|
+
name: typhoeus
|
146
129
|
requirement: *id008
|
130
|
+
prerelease: false
|
147
131
|
- !ruby/object:Gem::Dependency
|
148
|
-
|
132
|
+
type: :development
|
149
133
|
version_requirements: &id009 !ruby/object:Gem::Requirement
|
150
|
-
none: false
|
151
134
|
requirements:
|
152
135
|
- - ">="
|
153
136
|
- !ruby/object:Gem::Version
|
154
|
-
hash: 51
|
155
137
|
segments:
|
156
138
|
- 0
|
157
139
|
- 11
|
158
140
|
- 0
|
159
141
|
version: 0.11.0
|
160
|
-
|
161
|
-
prerelease: false
|
142
|
+
name: excon
|
162
143
|
requirement: *id009
|
144
|
+
prerelease: false
|
163
145
|
- !ruby/object:Gem::Dependency
|
164
|
-
|
146
|
+
type: :development
|
165
147
|
version_requirements: &id010 !ruby/object:Gem::Requirement
|
166
|
-
none: false
|
167
148
|
requirements:
|
168
149
|
- - ">="
|
169
150
|
- !ruby/object:Gem::Version
|
170
|
-
hash: 3
|
171
151
|
segments:
|
172
152
|
- 2
|
173
153
|
- 2
|
174
154
|
- 2
|
175
155
|
version: 2.2.2
|
176
|
-
|
177
|
-
prerelease: false
|
156
|
+
name: minitest
|
178
157
|
requirement: *id010
|
158
|
+
prerelease: false
|
179
159
|
- !ruby/object:Gem::Dependency
|
180
|
-
|
160
|
+
type: :development
|
181
161
|
version_requirements: &id011 !ruby/object:Gem::Requirement
|
182
|
-
none: false
|
183
162
|
requirements:
|
184
163
|
- - ">"
|
185
164
|
- !ruby/object:Gem::Version
|
186
|
-
hash: 19
|
187
165
|
segments:
|
188
166
|
- 3
|
189
167
|
- 5
|
190
168
|
- 0
|
191
169
|
version: 3.5.0
|
192
|
-
|
193
|
-
prerelease: false
|
170
|
+
name: rdoc
|
194
171
|
requirement: *id011
|
172
|
+
prerelease: false
|
195
173
|
description: WebMock allows stubbing HTTP requests and setting expectations on HTTP requests.
|
196
174
|
email:
|
197
175
|
- bartosz.blimke@gmail.com
|
@@ -317,6 +295,7 @@ files:
|
|
317
295
|
- test/test_helper.rb
|
318
296
|
- test/test_webmock.rb
|
319
297
|
- webmock.gemspec
|
298
|
+
has_rdoc: true
|
320
299
|
homepage: http://github.com/bblimke/webmock
|
321
300
|
licenses: []
|
322
301
|
|
@@ -326,27 +305,23 @@ rdoc_options: []
|
|
326
305
|
require_paths:
|
327
306
|
- lib
|
328
307
|
required_ruby_version: !ruby/object:Gem::Requirement
|
329
|
-
none: false
|
330
308
|
requirements:
|
331
309
|
- - ">="
|
332
310
|
- !ruby/object:Gem::Version
|
333
|
-
hash: 3
|
334
311
|
segments:
|
335
312
|
- 0
|
336
313
|
version: "0"
|
337
314
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
338
|
-
none: false
|
339
315
|
requirements:
|
340
316
|
- - ">="
|
341
317
|
- !ruby/object:Gem::Version
|
342
|
-
hash: 3
|
343
318
|
segments:
|
344
319
|
- 0
|
345
320
|
version: "0"
|
346
321
|
requirements: []
|
347
322
|
|
348
323
|
rubyforge_project: webmock
|
349
|
-
rubygems_version: 1.
|
324
|
+
rubygems_version: 1.3.6
|
350
325
|
signing_key:
|
351
326
|
specification_version: 3
|
352
327
|
summary: Library for stubbing HTTP requests in Ruby.
|