Merge pull request #3169 from evazion/fix-upload-nil-source

Fix #3168: API upload can't handle unset source.
This commit is contained in:
evazion
2017-06-17 08:40:03 -05:00
committed by GitHub
3 changed files with 14 additions and 4 deletions

View File

@@ -393,7 +393,7 @@ class Upload < ApplicationRecord
module DownloaderMethods module DownloaderMethods
def strip_source def strip_source
source.try(:strip) source.to_s.strip
end end
# Determines whether the source is downloadable # Determines whether the source is downloadable

View File

@@ -16,9 +16,11 @@ FactoryGirl.define do
factory(:jpg_upload) do factory(:jpg_upload) do
content_type "image/jpeg" content_type "image/jpeg"
file_path do file do
FileUtils.cp("#{Rails.root}/test/files/test.jpg", "#{Rails.root}/tmp") f = Tempfile.new
"#{Rails.root}/tmp/test.jpg" f.write(File.read("#{Rails.root}/test/files/test.jpg"))
f.seek(0)
f
end end
end end

View File

@@ -308,6 +308,14 @@ class UploadTest < ActiveSupport::TestCase
assert_equal("completed", @upload.status) assert_equal("completed", @upload.status)
end end
should "process completely for a null source" do
@upload = FactoryGirl.create(:jpg_upload, :source => nil)
assert_difference("Post.count") do
assert_nothing_raised {@upload.process!}
end
end
should "delete the temporary file upon completion" do should "delete the temporary file upon completion" do
@upload = FactoryGirl.create(:source_upload, @upload = FactoryGirl.create(:source_upload,
:rating => "s", :rating => "s",