sealights-rspec-agent 2.0.4 → 2.0.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.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/agent/config.rb +6 -6
  3. data/agent/dependencies/faraday-0.17.0/LICENSE.md +20 -0
  4. data/agent/dependencies/faraday-0.17.0/README.md +384 -0
  5. data/agent/dependencies/faraday-0.17.0/lib/faraday.rb +248 -0
  6. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter.rb +55 -0
  7. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/em_http.rb +243 -0
  8. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/em_synchrony.rb +106 -0
  9. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/em_synchrony/parallel_manager.rb +66 -0
  10. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/excon.rb +82 -0
  11. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/httpclient.rb +128 -0
  12. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/net_http.rb +152 -0
  13. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/net_http_persistent.rb +68 -0
  14. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/patron.rb +95 -0
  15. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/rack.rb +58 -0
  16. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/sl_em_http_ssl_patch.rb +56 -0
  17. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/test.rb +213 -0
  18. data/agent/dependencies/faraday-0.17.0/lib/faraday/adapter/typhoeus.rb +12 -0
  19. data/agent/dependencies/faraday-0.17.0/lib/faraday/autoload.rb +84 -0
  20. data/agent/dependencies/faraday-0.17.0/lib/faraday/connection.rb +484 -0
  21. data/agent/dependencies/faraday-0.17.0/lib/faraday/error.rb +66 -0
  22. data/agent/dependencies/faraday-0.17.0/lib/faraday/middleware.rb +37 -0
  23. data/agent/dependencies/faraday-0.17.0/lib/faraday/options.rb +373 -0
  24. data/agent/dependencies/faraday-0.17.0/lib/faraday/parameters.rb +198 -0
  25. data/agent/dependencies/faraday-0.17.0/lib/faraday/rack_builder.rb +237 -0
  26. data/agent/dependencies/faraday-0.17.0/lib/faraday/request.rb +114 -0
  27. data/agent/dependencies/faraday-0.17.0/lib/faraday/request/authorization.rb +41 -0
  28. data/agent/dependencies/faraday-0.17.0/lib/faraday/request/basic_authentication.rb +13 -0
  29. data/agent/dependencies/faraday-0.17.0/lib/faraday/request/instrumentation.rb +36 -0
  30. data/agent/dependencies/faraday-0.17.0/lib/faraday/request/multipart.rb +68 -0
  31. data/agent/dependencies/faraday-0.17.0/lib/faraday/request/retry.rb +212 -0
  32. data/agent/dependencies/faraday-0.17.0/lib/faraday/request/token_authentication.rb +15 -0
  33. data/agent/dependencies/faraday-0.17.0/lib/faraday/request/url_encoded.rb +36 -0
  34. data/agent/dependencies/faraday-0.17.0/lib/faraday/response.rb +97 -0
  35. data/agent/dependencies/faraday-0.17.0/lib/faraday/response/logger.rb +80 -0
  36. data/agent/dependencies/faraday-0.17.0/lib/faraday/response/raise_error.rb +21 -0
  37. data/agent/dependencies/faraday-0.17.0/lib/faraday/upload_io.rb +67 -0
  38. data/agent/dependencies/faraday-0.17.0/lib/faraday/utils.rb +326 -0
  39. data/agent/dependencies/jwt-2.2.1/AUTHORS +84 -0
  40. data/agent/dependencies/jwt-2.2.1/Appraisals +14 -0
  41. data/agent/dependencies/jwt-2.2.1/CHANGELOG.md +570 -0
  42. data/agent/dependencies/jwt-2.2.1/Gemfile +3 -0
  43. data/agent/dependencies/jwt-2.2.1/LICENSE +7 -0
  44. data/agent/dependencies/jwt-2.2.1/README.md +489 -0
  45. data/agent/dependencies/jwt-2.2.1/Rakefile +11 -0
  46. data/agent/dependencies/jwt-2.2.1/lib/jwt.rb +30 -0
  47. data/agent/dependencies/jwt-2.2.1/lib/jwt/algos/ecdsa.rb +35 -0
  48. data/agent/dependencies/jwt-2.2.1/lib/jwt/algos/eddsa.rb +23 -0
  49. data/agent/dependencies/jwt-2.2.1/lib/jwt/algos/hmac.rb +33 -0
  50. data/agent/dependencies/jwt-2.2.1/lib/jwt/algos/ps.rb +43 -0
  51. data/agent/dependencies/jwt-2.2.1/lib/jwt/algos/rsa.rb +19 -0
  52. data/agent/dependencies/jwt-2.2.1/lib/jwt/algos/unsupported.rb +16 -0
  53. data/agent/dependencies/jwt-2.2.1/lib/jwt/base64.rb +19 -0
  54. data/agent/dependencies/jwt-2.2.1/lib/jwt/claims_validator.rb +33 -0
  55. data/agent/dependencies/jwt-2.2.1/lib/jwt/decode.rb +100 -0
  56. data/agent/dependencies/jwt-2.2.1/lib/jwt/default_options.rb +15 -0
  57. data/agent/dependencies/jwt-2.2.1/lib/jwt/encode.rb +68 -0
  58. data/agent/dependencies/jwt-2.2.1/lib/jwt/error.rb +20 -0
  59. data/agent/dependencies/jwt-2.2.1/lib/jwt/json.rb +18 -0
  60. data/agent/dependencies/jwt-2.2.1/lib/jwt/jwk.rb +31 -0
  61. data/agent/dependencies/jwt-2.2.1/lib/jwt/jwk/key_finder.rb +57 -0
  62. data/agent/dependencies/jwt-2.2.1/lib/jwt/jwk/rsa.rb +47 -0
  63. data/agent/dependencies/jwt-2.2.1/lib/jwt/security_utils.rb +57 -0
  64. data/agent/dependencies/jwt-2.2.1/lib/jwt/signature.rb +52 -0
  65. data/agent/dependencies/jwt-2.2.1/lib/jwt/verify.rb +98 -0
  66. data/agent/dependencies/jwt-2.2.1/lib/jwt/version.rb +24 -0
  67. data/agent/dependencies/jwt-2.2.1/ruby-jwt.gemspec +34 -0
  68. data/agent/dependencies/multipart-post-2.1.1/Gemfile +6 -0
  69. data/agent/dependencies/multipart-post-2.1.1/History.txt +64 -0
  70. data/agent/dependencies/multipart-post-2.1.1/LICENSE +21 -0
  71. data/agent/dependencies/multipart-post-2.1.1/Manifest.txt +9 -0
  72. data/agent/dependencies/multipart-post-2.1.1/README.md +127 -0
  73. data/agent/dependencies/multipart-post-2.1.1/Rakefile +6 -0
  74. data/agent/dependencies/multipart-post-2.1.1/lib/composite_io.rb +108 -0
  75. data/agent/dependencies/multipart-post-2.1.1/lib/multipart_post.rb +9 -0
  76. data/agent/dependencies/multipart-post-2.1.1/lib/multipartable.rb +48 -0
  77. data/agent/dependencies/multipart-post-2.1.1/lib/net/http/post/multipart.rb +28 -0
  78. data/agent/dependencies/multipart-post-2.1.1/lib/parts.rb +126 -0
  79. data/agent/dependencies/multipart-post-2.1.1/multipart-post.gemspec +23 -0
  80. data/agent/http_client.rb +46 -0
  81. data/agent/listener.rb +1 -1
  82. data/agent/sealights-rspec-agent.rb +2 -2
  83. data/agent/tia.rb +5 -1
  84. metadata +80 -3
  85. data/agent/rest-client-wrapper.rb +0 -27
@@ -0,0 +1,66 @@
1
+ module SLFaraday
2
+ class Error < StandardError; end
3
+
4
+ class ClientError < Error
5
+ attr_reader :response, :wrapped_exception
6
+
7
+ def initialize(ex, response = nil)
8
+ @wrapped_exception = nil
9
+ @response = response
10
+
11
+ if ex.respond_to?(:backtrace)
12
+ super(ex.message)
13
+ @wrapped_exception = ex
14
+ elsif ex.respond_to?(:each_key)
15
+ super("the server responded with status #{ex[:status]}")
16
+ @response = ex
17
+ else
18
+ super(ex.to_s)
19
+ end
20
+ end
21
+
22
+ def backtrace
23
+ if @wrapped_exception
24
+ @wrapped_exception.backtrace
25
+ else
26
+ super
27
+ end
28
+ end
29
+
30
+ def inspect
31
+ inner = ''
32
+ if @wrapped_exception
33
+ inner << " wrapped=#{@wrapped_exception.inspect}"
34
+ end
35
+ if @response
36
+ inner << " response=#{@response.inspect}"
37
+ end
38
+ if inner.empty?
39
+ inner << " #{super}"
40
+ end
41
+ %(#<#{self.class}#{inner}>)
42
+ end
43
+ end
44
+
45
+ class ConnectionFailed < ClientError; end
46
+ class ResourceNotFound < ClientError; end
47
+ class ParsingError < ClientError; end
48
+
49
+ class TimeoutError < ClientError
50
+ def initialize(ex = nil)
51
+ super(ex || "timeout")
52
+ end
53
+ end
54
+
55
+ class SSLError < ClientError
56
+ end
57
+
58
+ class RetriableResponse < ClientError; end
59
+
60
+ [:ClientError, :ConnectionFailed, :ResourceNotFound,
61
+ :ParsingError, :TimeoutError, :SSLError, :RetriableResponse].each do |const|
62
+ Error.const_set(const, SLFaraday.const_get(const))
63
+ end
64
+
65
+
66
+ end
@@ -0,0 +1,37 @@
1
+ module SLFaraday
2
+ class Middleware
3
+ extend MiddlewareRegistry
4
+
5
+ class << self
6
+ attr_accessor :load_error
7
+ private :load_error=
8
+ end
9
+
10
+ self.load_error = nil
11
+
12
+ # Executes a block which should try to require and reference dependent libraries
13
+ def self.dependency(lib = nil)
14
+ lib ? require(lib) : yield
15
+ rescue LoadError, NameError => error
16
+ self.load_error = error
17
+ end
18
+
19
+ def self.new(*)
20
+ raise "missing dependency for #{self}: #{load_error.message}" unless loaded?
21
+ super
22
+ end
23
+
24
+ def self.loaded?
25
+ load_error.nil?
26
+ end
27
+
28
+ def self.inherited(subclass)
29
+ super
30
+ subclass.send(:load_error=, self.load_error)
31
+ end
32
+
33
+ def initialize(app = nil)
34
+ @app = app
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,373 @@
1
+ module SLFaraday
2
+ # Subclasses Struct with some special helpers for converting from a Hash to
3
+ # a Struct.
4
+ class Options < Struct
5
+ # Public
6
+ def self.from(value)
7
+ value ? new.update(value) : new
8
+ end
9
+
10
+ # Public
11
+ def each
12
+ return to_enum(:each) unless block_given?
13
+ members.each do |key|
14
+ yield(key.to_sym, send(key))
15
+ end
16
+ end
17
+
18
+ # Public
19
+ def update(obj)
20
+ obj.each do |key, value|
21
+ sub_options = self.class.options_for(key)
22
+ if sub_options
23
+ new_value = sub_options.from(value) if value
24
+ elsif value.is_a?(Hash)
25
+ new_value = value.dup
26
+ else
27
+ new_value = value
28
+ end
29
+
30
+ self.send("#{key}=", new_value) unless new_value.nil?
31
+ end
32
+ self
33
+ end
34
+
35
+ # Public
36
+ def delete(key)
37
+ value = send(key)
38
+ send("#{key}=", nil)
39
+ value
40
+ end
41
+
42
+ # Public
43
+ def clear
44
+ members.each { |member| delete(member) }
45
+ end
46
+
47
+ # Public
48
+ def merge!(other)
49
+ other.each do |key, other_value|
50
+ self_value = self.send(key)
51
+ sub_options = self.class.options_for(key)
52
+ new_value = (self_value && sub_options && other_value) ? self_value.merge(other_value) : other_value
53
+ self.send("#{key}=", new_value) unless new_value.nil?
54
+ end
55
+ self
56
+ end
57
+
58
+ # Public
59
+ def merge(other)
60
+ dup.merge!(other)
61
+ end
62
+
63
+ # Public
64
+ def deep_dup
65
+ self.class.from(self)
66
+ end
67
+
68
+ # Public
69
+ def fetch(key, *args)
70
+ unless symbolized_key_set.include?(key.to_sym)
71
+ key_setter = "#{key}="
72
+ if args.size > 0
73
+ send(key_setter, args.first)
74
+ elsif block_given?
75
+ send(key_setter, Proc.new.call(key))
76
+ else
77
+ raise self.class.fetch_error_class, "key not found: #{key.inspect}"
78
+ end
79
+ end
80
+ send(key)
81
+ end
82
+
83
+ # Public
84
+ def values_at(*keys)
85
+ keys.map { |key| send(key) }
86
+ end
87
+
88
+ # Public
89
+ def keys
90
+ members.reject { |member| send(member).nil? }
91
+ end
92
+
93
+ # Public
94
+ def empty?
95
+ keys.empty?
96
+ end
97
+
98
+ # Public
99
+ def each_key
100
+ return to_enum(:each_key) unless block_given?
101
+ keys.each do |key|
102
+ yield(key)
103
+ end
104
+ end
105
+
106
+ # Public
107
+ def key?(key)
108
+ keys.include?(key)
109
+ end
110
+
111
+ alias has_key? key?
112
+
113
+ # Public
114
+ def each_value
115
+ return to_enum(:each_value) unless block_given?
116
+ values.each do |value|
117
+ yield(value)
118
+ end
119
+ end
120
+
121
+ # Public
122
+ def value?(value)
123
+ values.include?(value)
124
+ end
125
+
126
+ alias has_value? value?
127
+
128
+ # Public
129
+ def to_hash
130
+ hash = {}
131
+ members.each do |key|
132
+ value = send(key)
133
+ hash[key.to_sym] = value unless value.nil?
134
+ end
135
+ hash
136
+ end
137
+
138
+ # Internal
139
+ def inspect
140
+ values = []
141
+ members.each do |member|
142
+ value = send(member)
143
+ values << "#{member}=#{value.inspect}" if value
144
+ end
145
+ values = values.empty? ? ' (empty)' : (' ' << values.join(", "))
146
+
147
+ %(#<#{self.class}#{values}>)
148
+ end
149
+
150
+ # Internal
151
+ def self.options(mapping)
152
+ attribute_options.update(mapping)
153
+ end
154
+
155
+ # Internal
156
+ def self.options_for(key)
157
+ attribute_options[key]
158
+ end
159
+
160
+ # Internal
161
+ def self.attribute_options
162
+ @attribute_options ||= {}
163
+ end
164
+
165
+ def self.memoized(key)
166
+ memoized_attributes[key.to_sym] = Proc.new
167
+ class_eval <<-RUBY, __FILE__, __LINE__ + 1
168
+ def #{key}() self[:#{key}]; end
169
+ RUBY
170
+ end
171
+
172
+ def self.memoized_attributes
173
+ @memoized_attributes ||= {}
174
+ end
175
+
176
+ def [](key)
177
+ key = key.to_sym
178
+ if method = self.class.memoized_attributes[key]
179
+ super(key) || (self[key] = instance_eval(&method))
180
+ else
181
+ super
182
+ end
183
+ end
184
+
185
+ def symbolized_key_set
186
+ @symbolized_key_set ||= Set.new(keys.map { |k| k.to_sym })
187
+ end
188
+
189
+ def self.inherited(subclass)
190
+ super
191
+ subclass.attribute_options.update(attribute_options)
192
+ subclass.memoized_attributes.update(memoized_attributes)
193
+ end
194
+
195
+ def self.fetch_error_class
196
+ @fetch_error_class ||= if Object.const_defined?(:KeyError)
197
+ ::KeyError
198
+ else
199
+ ::IndexError
200
+ end
201
+ end
202
+ end
203
+
204
+ class RequestOptions < Options.new(:params_encoder, :proxy, :bind,
205
+ :timeout, :open_timeout, :write_timeout, :boundary, :oauth, :context)
206
+
207
+ def []=(key, value)
208
+ if key && key.to_sym == :proxy
209
+ super(key, value ? ProxyOptions.from(value) : nil)
210
+ else
211
+ super(key, value)
212
+ end
213
+ end
214
+ end
215
+
216
+ class SSLOptions < Options.new(:verify, :ca_file, :ca_path, :verify_mode,
217
+ :cert_store, :client_cert, :client_key, :certificate, :private_key, :verify_depth,
218
+ :version, :min_version, :max_version)
219
+
220
+ def verify?
221
+ verify != false
222
+ end
223
+
224
+ def disable?
225
+ !verify?
226
+ end
227
+ end
228
+
229
+ class ProxyOptions < Options.new(:uri, :user, :password)
230
+ extend Forwardable
231
+ def_delegators :uri, :scheme, :scheme=, :host, :host=, :port, :port=, :path, :path=
232
+
233
+ def self.from(value)
234
+ case value
235
+ when String
236
+ value = {:uri => Utils.URI(value)}
237
+ when URI
238
+ value = {:uri => value}
239
+ when Hash, Options
240
+ if uri = value.delete(:uri)
241
+ value[:uri] = Utils.URI(uri)
242
+ end
243
+ end
244
+ super(value)
245
+ end
246
+
247
+ memoized(:user) { uri && uri.user && Utils.unescape(uri.user) }
248
+ memoized(:password) { uri && uri.password && Utils.unescape(uri.password) }
249
+ end
250
+
251
+ class ConnectionOptions < Options.new(:request, :proxy, :ssl, :builder, :url,
252
+ :parallel_manager, :params, :headers, :builder_class)
253
+
254
+ options :request => RequestOptions, :ssl => SSLOptions
255
+
256
+ memoized(:request) { self.class.options_for(:request).new }
257
+
258
+ memoized(:ssl) { self.class.options_for(:ssl).new }
259
+
260
+ memoized(:builder_class) { RackBuilder }
261
+
262
+ def new_builder(block)
263
+ builder_class.new(&block)
264
+ end
265
+ end
266
+
267
+ class Env < Options.new(:method, :body, :url, :request, :request_headers,
268
+ :ssl, :parallel_manager, :params, :response, :response_headers, :status,
269
+ :reason_phrase)
270
+
271
+ ContentLength = 'Content-Length'.freeze
272
+ StatusesWithoutBody = Set.new [204, 304]
273
+ SuccessfulStatuses = 200..299
274
+
275
+ # A Set of HTTP verbs that typically send a body. If no body is set for
276
+ # these requests, the Content-Length header is set to 0.
277
+ MethodsWithBodies = Set.new [:post, :put, :patch, :options]
278
+
279
+ options :request => RequestOptions,
280
+ :request_headers => Utils::Headers, :response_headers => Utils::Headers
281
+
282
+ extend Forwardable
283
+
284
+ def_delegators :request, :params_encoder
285
+
286
+ # Public
287
+ def self.from(value)
288
+ env = super(value)
289
+ if value.respond_to?(:custom_members)
290
+ env.custom_members.update(value.custom_members)
291
+ end
292
+ env
293
+ end
294
+
295
+ # Public
296
+ def [](key)
297
+ if in_member_set?(key)
298
+ super(key)
299
+ else
300
+ custom_members[key]
301
+ end
302
+ end
303
+
304
+ # Public
305
+ def []=(key, value)
306
+ if in_member_set?(key)
307
+ super(key, value)
308
+ else
309
+ custom_members[key] = value
310
+ end
311
+ end
312
+
313
+ # Public
314
+ def success?
315
+ SuccessfulStatuses.include?(status)
316
+ end
317
+
318
+ # Public
319
+ def needs_body?
320
+ !body && MethodsWithBodies.include?(method)
321
+ end
322
+
323
+ # Public
324
+ def clear_body
325
+ request_headers[ContentLength] = '0'
326
+ self.body = ''
327
+ end
328
+
329
+ # Public
330
+ def parse_body?
331
+ !StatusesWithoutBody.include?(status)
332
+ end
333
+
334
+ # Public
335
+ def parallel?
336
+ !!parallel_manager
337
+ end
338
+
339
+ def inspect
340
+ attrs = [nil]
341
+ members.each do |mem|
342
+ if value = send(mem)
343
+ attrs << "@#{mem}=#{value.inspect}"
344
+ end
345
+ end
346
+ if !custom_members.empty?
347
+ attrs << "@custom=#{custom_members.inspect}"
348
+ end
349
+ %(#<#{self.class}#{attrs.join(" ")}>)
350
+ end
351
+
352
+ # Internal
353
+ def custom_members
354
+ @custom_members ||= {}
355
+ end
356
+
357
+ # Internal
358
+ if members.first.is_a?(Symbol)
359
+ def in_member_set?(key)
360
+ self.class.member_set.include?(key.to_sym)
361
+ end
362
+ else
363
+ def in_member_set?(key)
364
+ self.class.member_set.include?(key.to_s)
365
+ end
366
+ end
367
+
368
+ # Internal
369
+ def self.member_set
370
+ @member_set ||= Set.new(members)
371
+ end
372
+ end
373
+ end