excon 0.62.0 → 0.92.3

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.
Files changed (125) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.md +0 -1
  3. data/LICENSE.md +1 -1
  4. data/README.md +7 -6
  5. data/data/cacert.pem +1220 -1828
  6. data/excon.gemspec +19 -3
  7. data/lib/excon/connection.rb +216 -139
  8. data/lib/excon/constants.rb +38 -13
  9. data/lib/excon/error.rb +15 -0
  10. data/lib/excon/headers.rb +4 -3
  11. data/lib/excon/instrumentors/logging_instrumentor.rb +5 -16
  12. data/lib/excon/instrumentors/standard_instrumentor.rb +2 -9
  13. data/lib/excon/middlewares/base.rb +6 -0
  14. data/lib/excon/middlewares/capture_cookies.rb +1 -1
  15. data/lib/excon/middlewares/decompress.rb +11 -4
  16. data/lib/excon/middlewares/expects.rb +7 -1
  17. data/lib/excon/middlewares/idempotent.rb +20 -3
  18. data/lib/excon/middlewares/instrumentor.rb +8 -0
  19. data/lib/excon/middlewares/mock.rb +12 -3
  20. data/lib/excon/middlewares/redirect_follower.rb +25 -3
  21. data/lib/excon/middlewares/response_parser.rb +3 -0
  22. data/lib/excon/pretty_printer.rb +1 -8
  23. data/lib/excon/response.rb +12 -9
  24. data/lib/excon/socket.rb +59 -42
  25. data/lib/excon/ssl_socket.rb +37 -15
  26. data/lib/excon/test/plugin/server/exec.rb +5 -2
  27. data/lib/excon/test/plugin/server/puma.rb +4 -1
  28. data/lib/excon/test/plugin/server/unicorn.rb +5 -0
  29. data/lib/excon/test/plugin/server/webrick.rb +4 -1
  30. data/lib/excon/test/server.rb +1 -1
  31. data/lib/excon/unix_socket.rb +1 -0
  32. data/lib/excon/utils.rb +59 -5
  33. data/lib/excon/version.rb +1 -1
  34. data/lib/excon.rb +25 -17
  35. metadata +27 -98
  36. data/.document +0 -5
  37. data/.gitignore +0 -13
  38. data/.rspec +0 -3
  39. data/.travis.yml +0 -29
  40. data/Gemfile +0 -19
  41. data/Rakefile +0 -41
  42. data/benchmarks/class_vs_lambda.rb +0 -50
  43. data/benchmarks/concat_vs_insert.rb +0 -21
  44. data/benchmarks/concat_vs_interpolate.rb +0 -22
  45. data/benchmarks/cr_lf.rb +0 -21
  46. data/benchmarks/downcase-eq-eq_vs_casecmp.rb +0 -169
  47. data/benchmarks/excon.rb +0 -69
  48. data/benchmarks/excon_vs.rb +0 -165
  49. data/benchmarks/for_vs_array_each.rb +0 -27
  50. data/benchmarks/for_vs_hash_each.rb +0 -27
  51. data/benchmarks/has_key-vs-lookup.rb +0 -177
  52. data/benchmarks/headers_case_sensitivity.rb +0 -83
  53. data/benchmarks/headers_split_vs_match.rb +0 -34
  54. data/benchmarks/implicit_block-vs-explicit_block.rb +0 -98
  55. data/benchmarks/merging.rb +0 -21
  56. data/benchmarks/single_vs_double_quotes.rb +0 -21
  57. data/benchmarks/string_ranged_index.rb +0 -87
  58. data/benchmarks/strip_newline.rb +0 -115
  59. data/benchmarks/vs_stdlib.rb +0 -82
  60. data/changelog.txt +0 -1083
  61. data/spec/excon/error_spec.rb +0 -139
  62. data/spec/excon/test/server_spec.rb +0 -28
  63. data/spec/excon_spec.rb +0 -7
  64. data/spec/helpers/file_path_helpers.rb +0 -22
  65. data/spec/requests/basic_spec.rb +0 -40
  66. data/spec/requests/eof_requests_spec.rb +0 -36
  67. data/spec/requests/unix_socket_spec.rb +0 -46
  68. data/spec/spec_helper.rb +0 -24
  69. data/spec/support/shared_contexts/test_server_context.rb +0 -83
  70. data/spec/support/shared_examples/shared_example_for_clients.rb +0 -218
  71. data/spec/support/shared_examples/shared_example_for_streaming_clients.rb +0 -20
  72. data/spec/support/shared_examples/shared_example_for_test_servers.rb +0 -16
  73. data/tests/authorization_header_tests.rb +0 -29
  74. data/tests/bad_tests.rb +0 -47
  75. data/tests/basic_tests.rb +0 -351
  76. data/tests/batch_requests.rb +0 -133
  77. data/tests/complete_responses.rb +0 -31
  78. data/tests/data/127.0.0.1.cert.crt +0 -20
  79. data/tests/data/127.0.0.1.cert.key +0 -27
  80. data/tests/data/excon.cert.crt +0 -20
  81. data/tests/data/excon.cert.key +0 -27
  82. data/tests/data/xs +0 -1
  83. data/tests/error_tests.rb +0 -145
  84. data/tests/header_tests.rb +0 -119
  85. data/tests/middlewares/canned_response_tests.rb +0 -34
  86. data/tests/middlewares/capture_cookies_tests.rb +0 -34
  87. data/tests/middlewares/decompress_tests.rb +0 -157
  88. data/tests/middlewares/escape_path_tests.rb +0 -36
  89. data/tests/middlewares/idempotent_tests.rb +0 -206
  90. data/tests/middlewares/instrumentation_tests.rb +0 -315
  91. data/tests/middlewares/mock_tests.rb +0 -304
  92. data/tests/middlewares/redirect_follower_tests.rb +0 -112
  93. data/tests/pipeline_tests.rb +0 -40
  94. data/tests/proxy_tests.rb +0 -306
  95. data/tests/query_string_tests.rb +0 -87
  96. data/tests/rackups/basic.rb +0 -41
  97. data/tests/rackups/basic.ru +0 -3
  98. data/tests/rackups/basic_auth.ru +0 -14
  99. data/tests/rackups/deflater.ru +0 -4
  100. data/tests/rackups/proxy.ru +0 -18
  101. data/tests/rackups/query_string.ru +0 -13
  102. data/tests/rackups/redirecting.ru +0 -23
  103. data/tests/rackups/redirecting_with_cookie.ru +0 -40
  104. data/tests/rackups/request_headers.ru +0 -15
  105. data/tests/rackups/request_methods.ru +0 -21
  106. data/tests/rackups/response_header.ru +0 -18
  107. data/tests/rackups/ssl.ru +0 -16
  108. data/tests/rackups/ssl_mismatched_cn.ru +0 -15
  109. data/tests/rackups/ssl_verify_peer.ru +0 -16
  110. data/tests/rackups/streaming.ru +0 -30
  111. data/tests/rackups/thread_safety.ru +0 -17
  112. data/tests/rackups/timeout.ru +0 -14
  113. data/tests/rackups/webrick_patch.rb +0 -34
  114. data/tests/request_headers_tests.rb +0 -21
  115. data/tests/request_method_tests.rb +0 -47
  116. data/tests/request_tests.rb +0 -59
  117. data/tests/response_tests.rb +0 -197
  118. data/tests/servers/bad.rb +0 -20
  119. data/tests/servers/eof.rb +0 -17
  120. data/tests/servers/error.rb +0 -20
  121. data/tests/servers/good.rb +0 -350
  122. data/tests/test_helper.rb +0 -306
  123. data/tests/thread_safety_tests.rb +0 -39
  124. data/tests/timeout_tests.rb +0 -12
  125. data/tests/utils_tests.rb +0 -81
@@ -1,206 +0,0 @@
1
- Shindo.tests('Excon request idempotencey') do
2
-
3
- before do
4
- @connection = Excon.new('http://127.0.0.1:9292', :mock => true)
5
- end
6
-
7
- after do
8
- # flush any existing stubs after each test
9
- Excon.stubs.clear
10
- end
11
-
12
- tests("Non-idempotent call with an erroring socket").raises(Excon::Errors::SocketError) do
13
- run_count = 0
14
- Excon.stub({:method => :get}) { |params|
15
- run_count += 1
16
- if run_count <= 3 # First 3 calls fail.
17
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
18
- else
19
- {:body => params[:body], :headers => params[:headers], :status => 200}
20
- end
21
- }
22
-
23
- @connection.request(:method => :get, :path => '/some-path')
24
- end
25
-
26
- tests("Idempotent request with socket erroring first 3 times").returns(200) do
27
- run_count = 0
28
- Excon.stub({:method => :get}) { |params|
29
- run_count += 1
30
- if run_count <= 3 # First 3 calls fail.
31
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
32
- else
33
- {:body => params[:body], :headers => params[:headers], :status => 200}
34
- end
35
- }
36
-
37
- response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path')
38
- response.status
39
- end
40
-
41
- tests("Idempotent request with socket erroring first 5 times").raises(Excon::Errors::SocketError) do
42
- run_count = 0
43
- Excon.stub({:method => :get}) { |params|
44
- run_count += 1
45
- if run_count <= 5 # First 5 calls fail.
46
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
47
- else
48
- {:body => params[:body], :headers => params[:headers], :status => 200}
49
- end
50
- }
51
-
52
- response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path')
53
- response.status
54
- end
55
-
56
- tests("Lowered retry limit with socket erroring first time").returns(200) do
57
- run_count = 0
58
- Excon.stub({:method => :get}) { |params|
59
- run_count += 1
60
- if run_count <= 1 # First call fails.
61
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
62
- else
63
- {:body => params[:body], :headers => params[:headers], :status => 200}
64
- end
65
- }
66
-
67
- response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :retry_limit => 2)
68
- response.status
69
- end
70
-
71
- tests("Lowered retry limit with socket erroring first 3 times").raises(Excon::Errors::SocketError) do
72
- run_count = 0
73
- Excon.stub({:method => :get}) { |params|
74
- run_count += 1
75
- if run_count <= 3 # First 3 calls fail.
76
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
77
- else
78
- {:body => params[:body], :headers => params[:headers], :status => 200}
79
- end
80
- }
81
-
82
- response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :retry_limit => 2)
83
- response.status
84
- end
85
-
86
- tests("Raised retry limit with socket erroring first 5 times").returns(200) do
87
- run_count = 0
88
- Excon.stub({:method => :get}) { |params|
89
- run_count += 1
90
- if run_count <= 5 # First 5 calls fail.
91
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
92
- else
93
- {:body => params[:body], :headers => params[:headers], :status => 200}
94
- end
95
- }
96
-
97
- response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :retry_limit => 8)
98
- response.status
99
- end
100
-
101
- tests("Raised retry limit with socket erroring first 9 times").raises(Excon::Errors::SocketError) do
102
- run_count = 0
103
- Excon.stub({:method => :get}) { |params|
104
- run_count += 1
105
- if run_count <= 9 # First 9 calls fail.
106
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
107
- else
108
- {:body => params[:body], :headers => params[:headers], :status => 200}
109
- end
110
- }
111
-
112
- response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :retry_limit => 8)
113
- response.status
114
- end
115
-
116
- tests("Retry limit in constructor with socket erroring first 5 times").returns(200) do
117
- run_count = 0
118
- Excon.stub({:method => :get}) { |params|
119
- run_count += 1
120
- if run_count <= 5 # First 5 calls fail.
121
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
122
- else
123
- {:body => params[:body], :headers => params[:headers], :status => 200}
124
- end
125
- }
126
-
127
- response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :retry_limit => 6)
128
- response.status
129
- end
130
-
131
- tests("Retry limit and sleep in constructor with socket erroring first 2 times").returns(200) do
132
- run_count = 0
133
- Excon.stub({:method => :get}) { |params|
134
- run_count += 1
135
- if run_count <= 2 # First 5 calls fail.
136
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
137
- else
138
- {:body => params[:body], :headers => params[:headers], :status => 200}
139
- end
140
- }
141
-
142
-
143
- # NOTE: A short :retry_interval will avoid slowing down the tests.
144
- response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :retry_limit => 3, :retry_interval => 0.1)
145
- response.status
146
- end
147
-
148
- tests("Retry limit and sleep in constructor with socket erroring first 2 times").raises(Excon::Errors::SocketError) do
149
- run_count = 0
150
- Excon.stub({:method => :get}) { |params|
151
- run_count += 1
152
- if run_count <= 2 # First 5 calls fail.
153
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
154
- else
155
- {:body => params[:body], :headers => params[:headers], :status => 200}
156
- end
157
- }
158
-
159
- # NOTE: A short :retry_interval will avoid slowing down the tests.
160
- response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :retry_limit => 2, :retry_interval => 0.1)
161
- response.status
162
- end
163
-
164
- class Block
165
- attr_reader :rewound
166
- def initialize
167
- @rewound = false
168
- end
169
- def call(_)
170
- end
171
- def rewind
172
- @rewound = true
173
- end
174
- end
175
-
176
- tests("request_block rewound").returns(true) do
177
- run_count = 0
178
- Excon.stub({:method => :get}) { |params|
179
- run_count += 1
180
- if run_count <= 1 # First call fails.
181
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
182
- else
183
- {:body => params[:body], :headers => params[:headers], :status => 200}
184
- end
185
- }
186
- request_block = Block.new
187
- @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :request_block => request_block, :retry_limit => 2, :retry_interval => 0.1)
188
- request_block.rewound
189
- end
190
-
191
- tests("response_block rewound").returns(true) do
192
- run_count = 0
193
- Excon.stub({:method => :get}) { |params|
194
- run_count += 1
195
- if run_count <= 1 # First call fails.
196
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
197
- else
198
- {:body => params[:body], :headers => params[:headers], :status => 200}
199
- end
200
- }
201
- response_block = Block.new
202
- @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :response_block => response_block, :retry_limit => 2, :retry_interval => 0.1)
203
- response_block.rewound
204
- end
205
-
206
- end
@@ -1,315 +0,0 @@
1
- require 'active_support/notifications'
2
- require 'securerandom'
3
-
4
- class SimpleInstrumentor
5
- class << self
6
- attr_accessor :events, :blocks
7
-
8
- def instrument(name, params = {}, &block)
9
- @events << name
10
- @blocks << name if block_given?
11
-
12
- yield if block_given?
13
- end
14
-
15
- def reset!
16
- @events = []
17
- @blocks = []
18
- end
19
- end
20
- end
21
-
22
- Shindo.tests('Excon instrumentation') do
23
-
24
- after do
25
- ActiveSupport::Notifications.unsubscribe("excon")
26
- ActiveSupport::Notifications.unsubscribe("excon.request")
27
- ActiveSupport::Notifications.unsubscribe("excon.response")
28
- ActiveSupport::Notifications.unsubscribe("excon.retry")
29
- ActiveSupport::Notifications.unsubscribe("excon.error")
30
- ActiveSupport::Notifications.unsubscribe("gug")
31
- Delorean.back_to_the_present
32
- Excon.stubs.clear
33
- end
34
-
35
- before do
36
- SimpleInstrumentor.reset!
37
- end
38
-
39
- def subscribe(match)
40
- @events = []
41
- ActiveSupport::Notifications.subscribe(match) do |*args|
42
- @events << ActiveSupport::Notifications::Event.new(*args)
43
- end
44
- end
45
-
46
- def make_request(idempotent = false, params = {})
47
- connection = Excon.new(
48
- 'http://127.0.0.1:9292',
49
- :instrumentor => ActiveSupport::Notifications,
50
- :mock => true
51
- )
52
- if idempotent
53
- params[:idempotent] = :true
54
- end
55
- connection.get(params)
56
- end
57
-
58
- REQUEST_DELAY_SECONDS = 30
59
- def stub_success
60
- Excon.stub({:method => :get}) { |params|
61
- Delorean.jump REQUEST_DELAY_SECONDS
62
- {:body => params[:body], :headers => params[:headers], :status => 200}
63
- }
64
- end
65
-
66
- def stub_retries
67
- run_count = 0
68
- Excon.stub({:method => :get}) { |params|
69
- run_count += 1
70
- if run_count <= 3 # First 3 calls fail.
71
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
72
- else
73
- {:body => params[:body], :headers => params[:headers], :status => 200}
74
- end
75
- }
76
- end
77
-
78
- def stub_failure
79
- Excon.stub({:method => :get}) { |params|
80
- raise Excon::Errors::SocketError.new(Exception.new "Mock Error")
81
- }
82
- end
83
-
84
- tests('basic notification').returns(['excon.request', 'excon.response']) do
85
- subscribe(/excon/)
86
- stub_success
87
- make_request
88
- @events.map(&:name)
89
- end
90
-
91
- tests('captures scheme, host, port, and path').returns([:host, :path, :port, :scheme]) do
92
- subscribe(/excon/)
93
- stub_success
94
- make_request
95
- [:host, :path, :port, :scheme].select {|k| @events.first.payload.has_key? k}
96
- end
97
-
98
- tests('params in request overwrite those in constructor').returns('/cheezburger') do
99
- subscribe(/excon/)
100
- stub_success
101
- make_request(false, :path => '/cheezburger')
102
- @events.first.payload[:path]
103
- end
104
-
105
- tests('notify on retry').returns(3) do
106
- subscribe(/excon/)
107
- stub_retries
108
- make_request(true)
109
- @events.count{|e| e.name =~ /retry/}
110
- end
111
-
112
- tests('notify on error').returns(true) do
113
- subscribe(/excon/)
114
- stub_failure
115
- raises(Excon::Errors::SocketError) do
116
- make_request
117
- end
118
-
119
- @events.any?{|e| e.name =~ /error/}
120
- end
121
-
122
- tests('filtering').returns(['excon.request', 'excon.error']) do
123
- subscribe(/excon.request/)
124
- subscribe(/excon.error/)
125
- stub_failure
126
- raises(Excon::Errors::SocketError) do
127
- make_request(true)
128
- end
129
-
130
- @events.map(&:name)
131
- end
132
-
133
- tests('more filtering').returns(['excon.retry', 'excon.retry', 'excon.retry']) do
134
- subscribe(/excon.retry/)
135
- stub_failure
136
- raises(Excon::Errors::SocketError) do
137
- make_request(true)
138
- end
139
-
140
- @events.map(&:name)
141
- end
142
-
143
- tests('indicates duration').returns(true) do
144
- subscribe(/excon/)
145
- stub_success
146
- make_request
147
- (@events.first.duration/1000 - REQUEST_DELAY_SECONDS).abs < 1
148
- end
149
-
150
- tests('standard instrumentor') do
151
-
152
- tests('success').returns(
153
- ['excon.request', 'excon.retry', 'excon.retry', 'excon.retry', 'excon.error']) do
154
-
155
- begin
156
- original_stderr = $stderr
157
- $stderr = captured_stderr = StringIO.new
158
- stub_failure
159
- connection = Excon.new(
160
- 'http://127.0.0.1:9292',
161
- :instrumentor => Excon::StandardInstrumentor,
162
- :mock => true
163
- )
164
- raises(Excon::Errors::SocketError) do
165
- connection.get(:idempotent => true)
166
- end
167
-
168
- captured_stderr.string.split("\n").reject {|line| line =~ %r{^ }}.map {|event| event.split(' ').first}
169
- ensure
170
- $stderr = original_stderr
171
- end
172
- end
173
-
174
- tests('authorization header REDACT') do
175
-
176
- @auth_header = 'Basic dXNlcjpwYXNz'
177
-
178
- begin
179
- original_stderr = $stderr
180
- $stderr = @captured_stderr = StringIO.new
181
- stub_failure
182
- raises(Excon::Errors::SocketError) do
183
- @connection = Excon.new(
184
- 'http://user:pass@127.0.0.1:9292',
185
- :headers => {
186
- 'Authorization' => @auth_header
187
- },
188
- :instrumentor => Excon::StandardInstrumentor,
189
- :mock => true
190
- )
191
- @connection.get(:idempotent => true)
192
- end
193
- ensure
194
- $stderr = original_stderr
195
- end
196
-
197
- test('does not appear in response') do
198
- !@captured_stderr.string.include?(@auth_header)
199
- end
200
-
201
- test('does not mutate Authorization value') do
202
- @connection.data[:headers]['Authorization'] == @auth_header
203
- end
204
-
205
- end
206
-
207
- tests('password REDACT') do
208
-
209
- begin
210
- original_stderr = $stderr
211
- $stderr = @captured_stderr = StringIO.new
212
- stub_failure
213
- raises(Excon::Errors::SocketError) do
214
- @connection = Excon.new(
215
- 'http://user:pass@127.0.0.1:9292',
216
- :instrumentor => Excon::StandardInstrumentor,
217
- :mock => true
218
- )
219
- @connection.get(:idempotent => true)
220
- end
221
- ensure
222
- $stderr = original_stderr
223
- end
224
-
225
- @password_param = '"pass"'
226
-
227
- test('does not appear in response') do
228
- !@captured_stderr.string.include?(@password_param)
229
- end
230
-
231
- test('does not mutate password value') do
232
- @connection.data[:password] == "pass"
233
- end
234
-
235
- end
236
-
237
- end
238
-
239
- tests('use our own instrumentor').returns(
240
- ['excon.request', 'excon.retry', 'excon.retry', 'excon.retry', 'excon.error']) do
241
- stub_failure
242
- connection = Excon.new(
243
- 'http://127.0.0.1:9292',
244
- :instrumentor => SimpleInstrumentor,
245
- :mock => true
246
- )
247
- raises(Excon::Errors::SocketError) do
248
- connection.get(:idempotent => true)
249
- end
250
-
251
- SimpleInstrumentor.events
252
- end
253
-
254
- tests('always passes the block').returns(
255
- ['excon.request', 'excon.response']) do
256
- stub_success
257
- connection = Excon.new(
258
- 'http://127.0.0.1:9292',
259
- :instrumentor => SimpleInstrumentor,
260
- :mock => true
261
- )
262
- connection.get(:idempotent => true)
263
-
264
- SimpleInstrumentor.blocks
265
- end
266
-
267
- tests('does not generate events when not provided').returns(0) do
268
- subscribe(/excon/)
269
- stub_success
270
- connection = Excon.new('http://127.0.0.1:9292', :mock => true)
271
- connection.get(:idempotent => true)
272
- @events.count
273
- end
274
-
275
- tests('allows setting the prefix').returns(
276
- ['gug.request', 'gug.retry', 'gug.retry','gug.retry', 'gug.error']) do
277
- subscribe(/gug/)
278
- stub_failure
279
- connection = Excon.new(
280
- 'http://127.0.0.1:9292',
281
- :instrumentor => ActiveSupport::Notifications,
282
- :instrumentor_name => 'gug',
283
- :mock => true
284
- )
285
- raises(Excon::Errors::SocketError) do
286
- connection.get(:idempotent => true)
287
- end
288
- @events.map(&:name)
289
- end
290
-
291
- tests('allows setting the prefix when not idempotent', 'foo').returns(
292
- ['gug.request', 'gug.error']) do
293
- subscribe(/gug/)
294
- stub_failure
295
- connection = Excon.new(
296
- 'http://127.0.0.1:9292',
297
- :instrumentor => ActiveSupport::Notifications,
298
- :instrumentor_name => 'gug',
299
- :mock => true
300
- )
301
- raises(Excon::Errors::SocketError) do
302
- connection.get()
303
- end
304
- @events.map(&:name)
305
- end
306
-
307
- with_rackup('basic.ru') do
308
- tests('works unmocked').returns(['excon.request', 'excon.response']) do
309
- subscribe(/excon/)
310
- make_request(false, :mock => false)
311
- @events.map(&:name)
312
- end
313
- end
314
- end
315
-