From 5ca1c1d2951f35d2443eebc2e7f456eee2fc907d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonne=20Ha=C3=9F?= Date: Sat, 20 Sep 2014 13:47:52 +0200 Subject: [PATCH] Raise on 404 during Webfinger That's at least readable, return false just causes silly follow up errors --- lib/webfinger.rb | 4 +++- spec/lib/webfinger_spec.rb | 13 +++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/webfinger.rb b/lib/webfinger.rb index 93e2cf5f6..385c2b40b 100644 --- a/lib/webfinger.rb +++ b/lib/webfinger.rb @@ -31,7 +31,9 @@ class Webfinger Rails.logger.info("Getting: #{url} for #{account}") begin res = Faraday.get(url) - return false if res.status == 404 + unless res.success? + raise "Failed to fetch #{url}: #{res.status}" + end res.body rescue OpenSSL::SSL::SSLError => e Rails.logger.info "Failed to fetch #{url}: SSL setup invalid" diff --git a/spec/lib/webfinger_spec.rb b/spec/lib/webfinger_spec.rb index 25104bb37..c3515bebe 100644 --- a/spec/lib/webfinger_spec.rb +++ b/spec/lib/webfinger_spec.rb @@ -36,7 +36,7 @@ describe Webfinger do Webfinger.in_background(account) end end - + describe '#fetch' do it 'works' do finger = Webfinger.new(account_in_fixtures) @@ -72,14 +72,15 @@ describe Webfinger do expect(a_request(:get, redirect_url)).to have_been_made end - - it 'returns false on 404' do + + it 'raises on 404' do url ="https://bar.com/.well-known/host-meta" stub_request(:get, url). to_return(:status => 404, :body => nil) - expect(finger.get(url)).not_to eq(nil) - expect(finger.get(url)).to eq(false) + expect { + expect(finger.get(url)).to eq(false) + }.to raise_error end end @@ -190,7 +191,7 @@ describe Webfinger do expect(Person).to receive(:create_from_webfinger).with("webfinger_profile", "hcard") finger.make_person_from_webfinger end - + it 'with an false xrd it does not call Person.create_from_webfinger' do allow(finger).to receive(:webfinger_profile_xrd).and_return(false) expect(Person).not_to receive(:create_from_webfinger)