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