Handle failed requests

This commit is contained in:
Basti 2018-06-26 18:29:30 -07:00
parent adbee52e52
commit bd6f74f09f
5 changed files with 49 additions and 5 deletions

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -2,3 +2,4 @@ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
require "manifique"
require "minitest/autorun"
require "webmock/minitest"