Handle failed requests
This commit is contained in:
parent
adbee52e52
commit
bd6f74f09f
18
Gemfile.lock
18
Gemfile.lock
@ -10,17 +10,33 @@ PATH
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
|
addressable (2.5.2)
|
||||||
|
public_suffix (>= 2.0.2, < 4.0)
|
||||||
|
coderay (1.1.2)
|
||||||
|
crack (0.4.3)
|
||||||
|
safe_yaml (~> 1.0.0)
|
||||||
faraday (0.15.2)
|
faraday (0.15.2)
|
||||||
multipart-post (>= 1.2, < 3)
|
multipart-post (>= 1.2, < 3)
|
||||||
faraday_middleware (0.12.2)
|
faraday_middleware (0.12.2)
|
||||||
faraday (>= 0.7.4, < 1.0)
|
faraday (>= 0.7.4, < 1.0)
|
||||||
|
hashdiff (0.3.7)
|
||||||
|
method_source (0.9.0)
|
||||||
mini_portile2 (2.3.0)
|
mini_portile2 (2.3.0)
|
||||||
minitest (5.11.3)
|
minitest (5.11.3)
|
||||||
multipart-post (2.0.0)
|
multipart-post (2.0.0)
|
||||||
nitlink (1.1.0)
|
nitlink (1.1.0)
|
||||||
nokogiri (1.8.3)
|
nokogiri (1.8.3)
|
||||||
mini_portile2 (~> 2.3.0)
|
mini_portile2 (~> 2.3.0)
|
||||||
|
pry (0.11.3)
|
||||||
|
coderay (~> 1.1.0)
|
||||||
|
method_source (~> 0.9.0)
|
||||||
|
public_suffix (3.0.2)
|
||||||
rake (10.5.0)
|
rake (10.5.0)
|
||||||
|
safe_yaml (1.0.4)
|
||||||
|
webmock (3.4.2)
|
||||||
|
addressable (>= 2.3.6)
|
||||||
|
crack (>= 0.3.2)
|
||||||
|
hashdiff
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
@ -29,7 +45,9 @@ DEPENDENCIES
|
|||||||
bundler (~> 1.16)
|
bundler (~> 1.16)
|
||||||
manifique!
|
manifique!
|
||||||
minitest (~> 5.0)
|
minitest (~> 5.0)
|
||||||
|
pry (~> 0.11.3)
|
||||||
rake (~> 10.0)
|
rake (~> 10.0)
|
||||||
|
webmock (~> 3.4.2)
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
1.16.2
|
1.16.2
|
||||||
|
@ -3,6 +3,8 @@ require 'faraday_middleware'
|
|||||||
require "nokogiri"
|
require "nokogiri"
|
||||||
require 'nitlink/response'
|
require 'nitlink/response'
|
||||||
|
|
||||||
|
require 'pry'
|
||||||
|
|
||||||
module Manifique
|
module Manifique
|
||||||
class WebClient
|
class WebClient
|
||||||
def initialize(options)
|
def initialize(options)
|
||||||
@ -11,12 +13,21 @@ module Manifique
|
|||||||
end
|
end
|
||||||
|
|
||||||
def fetch_web_manifest
|
def fetch_web_manifest
|
||||||
|
do_get_request @url
|
||||||
|
# binding.pry
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def do_get_request(url)
|
||||||
conn = Faraday.new do |b|
|
conn = Faraday.new do |b|
|
||||||
b.use FaradayMiddleware::FollowRedirects
|
b.use FaradayMiddleware::FollowRedirects
|
||||||
b.adapter :net_http
|
b.adapter :net_http
|
||||||
end
|
end
|
||||||
res = conn.get @url
|
res = conn.get url
|
||||||
raise res.inspect
|
if res.status > 400
|
||||||
|
raise "Could not fetch #{url} successfully (#{res.status})"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -25,6 +25,8 @@ Gem::Specification.new do |spec|
|
|||||||
spec.add_development_dependency "bundler", "~> 1.16"
|
spec.add_development_dependency "bundler", "~> 1.16"
|
||||||
spec.add_development_dependency "rake", "~> 10.0"
|
spec.add_development_dependency "rake", "~> 10.0"
|
||||||
spec.add_development_dependency "minitest", "~> 5.0"
|
spec.add_development_dependency "minitest", "~> 5.0"
|
||||||
|
spec.add_development_dependency "webmock", "~> 3.4.2"
|
||||||
|
spec.add_development_dependency "pry", "~> 0.11.3"
|
||||||
|
|
||||||
spec.add_runtime_dependency "faraday", "~> 0.15.2"
|
spec.add_runtime_dependency "faraday", "~> 0.15.2"
|
||||||
spec.add_runtime_dependency "faraday_middleware", "~> 0.12.2"
|
spec.add_runtime_dependency "faraday_middleware", "~> 0.12.2"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
require "test_helper"
|
require "test_helper"
|
||||||
|
|
||||||
class ManifiqueTest < Minitest::Test
|
class ManifiqueTest < Minitest::Test
|
||||||
|
|
||||||
def test_that_it_has_a_version_number
|
def test_that_it_has_a_version_number
|
||||||
refute_nil ::Manifique::VERSION
|
refute_nil ::Manifique::VERSION
|
||||||
end
|
end
|
||||||
@ -13,8 +14,19 @@ class ManifiqueTest < Minitest::Test
|
|||||||
assert_raises(RuntimeError) { Manifique::Agent.new(url: "htp:/foo.com") }
|
assert_raises(RuntimeError) { Manifique::Agent.new(url: "htp:/foo.com") }
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_fetch_metadata
|
def test_fetch_metadata_request_404
|
||||||
agent = Manifique::Agent.new(url: 'https://example.com')
|
stub_request(:get, "http://example.com/404").
|
||||||
assert_equal agent.fetch_metadata, 'https://example.com'
|
to_return(body: "", status: 404, headers: {})
|
||||||
|
|
||||||
|
agent = Manifique::Agent.new(url: 'http://example.com/404')
|
||||||
|
assert_raises(RuntimeError) { agent.fetch_metadata }
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_fetch_metadata_request_500
|
||||||
|
stub_request(:get, "http://example.com/500").
|
||||||
|
to_return(body: "", status: 500, headers: {})
|
||||||
|
|
||||||
|
agent = Manifique::Agent.new(url: 'http://example.com/500')
|
||||||
|
assert_raises(RuntimeError) { agent.fetch_metadata }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -2,3 +2,4 @@ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
|||||||
require "manifique"
|
require "manifique"
|
||||||
|
|
||||||
require "minitest/autorun"
|
require "minitest/autorun"
|
||||||
|
require "webmock/minitest"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user