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.
|
# A link to the artist's profile page on the site.
|
||||||
def profile_url
|
def profile_url
|
||||||
nil
|
""
|
||||||
end
|
end
|
||||||
|
|
||||||
def artist_name
|
def artist_name
|
||||||
raise NotImplementedError
|
""
|
||||||
end
|
end
|
||||||
|
|
||||||
def artist_commentary_title
|
def artist_commentary_title
|
||||||
@@ -129,7 +129,8 @@ module Sources
|
|||||||
end
|
end
|
||||||
|
|
||||||
def artists
|
def artists
|
||||||
Artist.find_artists(profile_url)
|
url = profile_url.presence || image_url.presence
|
||||||
|
Artist.find_artists(url)
|
||||||
end
|
end
|
||||||
|
|
||||||
def file_url
|
def file_url
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ module Sources
|
|||||||
url
|
url
|
||||||
end
|
end
|
||||||
|
|
||||||
def artist_name
|
def canonical_url
|
||||||
nil
|
image_url
|
||||||
end
|
end
|
||||||
|
|
||||||
def normalized_for_artist_finder?
|
def normalized_for_artist_finder?
|
||||||
@@ -38,10 +38,6 @@ module Sources
|
|||||||
def unique_id
|
def unique_id
|
||||||
url
|
url
|
||||||
end
|
end
|
||||||
|
|
||||||
def rewrite(url, headers, data)
|
|
||||||
return [url, headers, data]
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
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