lhc 5.0.3 → 5.1.0

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
  SHA1:
3
- metadata.gz: b254c12c9236f595f73e159d35b7f13c9e501e3c
4
- data.tar.gz: e8ccff4d8334e8e4b87bee5171f2c27ea44a8508
3
+ metadata.gz: 0a6996ab7562372bd3b44f71dd6fc84485804698
4
+ data.tar.gz: 1ca24023acb23ac975f44efdabf6ab44428a2b95
5
5
  SHA512:
6
- metadata.gz: f7e34e0029c58dc0f766a949f21bb771cecc0cd92a5ae8a91e429342c45c7c03df42e3d3df2a164ff08a76321d679c865d25ed12f7eb203093539b7720d36364
7
- data.tar.gz: b17640979f7bb7257b94bfc4dfe1b7f5e1f64356772f069d192420ed097c59c5e0b9d0e3bed54fc425dd66f587b8ebda134738f1b9bd94eeee5e46cad79f6945
6
+ metadata.gz: e75e7a6f8e4892f28f599e0906a92db5b87570804baec6f32aa7726faeecd371391ad21bda686a0b7814f15b279672ebdc4589cf735aa2b4e5372a109f7286bb
7
+ data.tar.gz: ec0046316b97ef9eb902bde1d2ec3c6dbe872ea9ff821801168bdbde71d4ba2f3559fdf7d349844276f1cf4166637e1341066927f35c0644e70343c7d8f17527
data/lib/lhc/error.rb CHANGED
@@ -58,7 +58,8 @@ class LHC::Error < StandardError
58
58
  debug << [request.method, request.url].map { |str| fix_invalid_encoding(str) }.join(' ')
59
59
  debug << "Options: #{request.options}"
60
60
  debug << "Headers: #{request.headers}"
61
- debug << "Response Code: #{response.code}"
61
+ debug << "Response Code: #{response.code} (#{response.options[:return_code]})"
62
+ debug << "Repsonse Options: #{response.options}"
62
63
  debug << response.body
63
64
  debug << _message
64
65
  debug.map { |str| fix_invalid_encoding(str) }.join("\n")
data/lib/lhc/response.rb CHANGED
@@ -6,6 +6,8 @@ class LHC::Response
6
6
 
7
7
  attr_accessor :request, :body_replacement
8
8
 
9
+ delegate :effective_url, :code, :headers, :options, :mock, :success?, to: :raw
10
+
9
11
  # A response is initalized with the underlying raw response (typhoeus in our case)
10
12
  # and the associated request.
11
13
  def initialize(raw, request)
@@ -21,30 +23,10 @@ class LHC::Response
21
23
  data[key]
22
24
  end
23
25
 
24
- def effective_url
25
- raw.effective_url
26
- end
27
-
28
26
  def body
29
27
  body_replacement || raw.body
30
28
  end
31
29
 
32
- def code
33
- raw.code
34
- end
35
-
36
- def headers
37
- raw.headers
38
- end
39
-
40
- def options
41
- raw.options
42
- end
43
-
44
- def mock
45
- raw.mock
46
- end
47
-
48
30
  # Provides response time in ms.
49
31
  def time
50
32
  (raw.time || 0) * 1000
@@ -54,10 +36,6 @@ class LHC::Response
54
36
  raw.timed_out?
55
37
  end
56
38
 
57
- def success?
58
- raw.success?
59
- end
60
-
61
39
  def format
62
40
  return JsonFormat.new if request.nil?
63
41
  request.format
data/lib/lhc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module LHC
2
- VERSION ||= "5.0.3"
2
+ VERSION ||= "5.1.0"
3
3
  end
@@ -1,12 +1,13 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe LHC::Error do
4
- def response(code)
5
- LHC::Response.new(OpenStruct.new(code: code), nil)
4
+ def response(code, timedout = false)
5
+ LHC::Response.new(OpenStruct.new(code: code, 'timed_out?' => timedout), nil)
6
6
  end
7
7
 
8
8
  context 'find' do
9
9
  it 'finds error class by status code' do
10
+ expect(LHC::Error.find(response('0', true))).to eq LHC::Timeout
10
11
  expect(LHC::Error.find(response('400'))).to eq LHC::BadRequest
11
12
  expect(LHC::Error.find(response('401'))).to eq LHC::Unauthorized
12
13
  expect(LHC::Error.find(response('402'))).to eq LHC::PaymentRequired
@@ -40,5 +40,39 @@ describe LHC::Error do
40
40
  end
41
41
  # the other cases cannot be tested (for example what happens if the headers contain invalid data)
42
42
  # because the mocking framework triggers the encoding error already
43
+
44
+ context 'some mocked response' do
45
+ let(:request) do
46
+ double('request',
47
+ method: 'GET',
48
+ url: 'http://example.com/sessions',
49
+ headers: { 'Bearer Token' => "aaaaaaaa-bbbb-cccc-dddd-eeee"},
50
+ options: { followlocation: true,
51
+ auth: { bearer: "aaaaaaaa-bbbb-cccc-dddd-eeee"},
52
+ params: { limit: 20}, url: "http://example.com/sessions" })
53
+ end
54
+
55
+ let(:response) do
56
+ double('response',
57
+ request: request,
58
+ code: 500,
59
+ options: { return_code: :internal_error, response_headers: "" },
60
+ body: '{"status":500,"message":"undefined"}')
61
+ end
62
+
63
+ subject { LHC::Error.new('The error message', response) }
64
+
65
+ it 'produces correct debug output' do
66
+ expect(subject.to_s.split("\n")).to eq(<<-MSG.strip_heredoc.split("\n"))
67
+ GET http://example.com/sessions
68
+ Options: {:followlocation=>true, :auth=>{:bearer=>"aaaaaaaa-bbbb-cccc-dddd-eeee"}, :params=>{:limit=>20}, :url=>"http://example.com/sessions"}
69
+ Headers: {"Bearer Token"=>"aaaaaaaa-bbbb-cccc-dddd-eeee"}
70
+ Response Code: 500 (internal_error)
71
+ Repsonse Options: {:return_code=>:internal_error, :response_headers=>""}
72
+ {"status":500,"message":"undefined"}
73
+ The error message
74
+ MSG
75
+ end
76
+ end
43
77
  end
44
78
  end
@@ -14,6 +14,7 @@ describe LHC::Request do
14
14
  end
15
15
 
16
16
  it 'raises errors for anything but 2XX response codes' do
17
+ expect_status_code(0) { to_fail_with(LHC::UnknownError) }
17
18
  expect_status_code(400) { to_fail_with(LHC::BadRequest) }
18
19
  expect_status_code(401) { to_fail_with(LHC::Unauthorized) }
19
20
  expect_status_code(402) { to_fail_with(LHC::PaymentRequired) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhc
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.3
4
+ version: 5.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - https://github.com/local-ch/lhc/contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-15 00:00:00.000000000 Z
11
+ date: 2017-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -317,7 +317,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
317
317
  requirements:
318
318
  - Ruby >= 2.0.0
319
319
  rubyforge_project:
320
- rubygems_version: 2.6.10
320
+ rubygems_version: 2.5.2
321
321
  signing_key:
322
322
  specification_version: 4
323
323
  summary: LocalHttpClient