Fix #3859: Related tag and find artist don't run when fetch data fails.
Fixes an exception in the artist finder caused by searching for a nil profile_url.
This commit is contained in:
@@ -71,11 +71,11 @@ module Sources
|
||||
|
||||
# A link to the artist's profile page on the site.
|
||||
def profile_url
|
||||
nil
|
||||
""
|
||||
end
|
||||
|
||||
def artist_name
|
||||
raise NotImplementedError
|
||||
""
|
||||
end
|
||||
|
||||
def artist_commentary_title
|
||||
@@ -129,7 +129,8 @@ module Sources
|
||||
end
|
||||
|
||||
def artists
|
||||
Artist.find_artists(profile_url)
|
||||
url = profile_url.presence || image_url.presence
|
||||
Artist.find_artists(url)
|
||||
end
|
||||
|
||||
def file_url
|
||||
|
||||
@@ -13,8 +13,8 @@ module Sources
|
||||
url
|
||||
end
|
||||
|
||||
def artist_name
|
||||
nil
|
||||
def canonical_url
|
||||
image_url
|
||||
end
|
||||
|
||||
def normalized_for_artist_finder?
|
||||
@@ -38,10 +38,6 @@ module Sources
|
||||
def unique_id
|
||||
url
|
||||
end
|
||||
|
||||
def rewrite(url, headers, data)
|
||||
return [url, headers, data]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
32
test/unit/sources/null_test.rb
Normal file
32
test/unit/sources/null_test.rb
Normal file
@@ -0,0 +1,32 @@
|
||||
require 'test_helper'
|
||||
|
||||
module Sources
|
||||
class NullTest < ActiveSupport::TestCase
|
||||
context "A source from an unknown site" do
|
||||
setup do
|
||||
@site = Sources::Strategies.find("http://oremuhax.x0.com/yoro1603.jpg", "http://oremuhax.x0.com/yo125.htm")
|
||||
end
|
||||
|
||||
should "be handled by the null strategy" do
|
||||
assert(@site.is_a?(Sources::Strategies::Null))
|
||||
end
|
||||
|
||||
should "find the metadata" do
|
||||
assert_equal("oremuhax.x0.com", @site.site_name)
|
||||
assert_equal(["http://oremuhax.x0.com/yoro1603.jpg"], @site.image_urls)
|
||||
assert_equal("http://oremuhax.x0.com/yoro1603.jpg", @site.image_url)
|
||||
assert_equal("http://oremuhax.x0.com/yoro1603.jpg", @site.canonical_url)
|
||||
assert_equal("", @site.artist_name)
|
||||
assert_equal("", @site.profile_url)
|
||||
assert_nothing_raised { @site.to_h }
|
||||
end
|
||||
|
||||
should "find the artist" do
|
||||
a1 = FactoryBot.create(:artist, name: "test1", url_string: "http://oremuhax.x0.com")
|
||||
a2 = FactoryBot.create(:artist, name: "test2", url_string: "http://google.com")
|
||||
|
||||
assert_equal([a1], @site.artists)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user