post replacements: fix self-replacements; don't swallow upload errors.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
class UploadService
|
||||
class Replacer
|
||||
extend Memoist
|
||||
class Error < Exception; end
|
||||
|
||||
attr_reader :post, :replacement
|
||||
|
||||
@@ -86,12 +87,13 @@ class UploadService
|
||||
tag_string: replacement.tags,
|
||||
source: replacement.replacement_url,
|
||||
file: replacement.replacement_file,
|
||||
replaced_post: post,
|
||||
original_post_id: post.id
|
||||
)
|
||||
upload = preprocessor.start!
|
||||
return if upload.is_errored?
|
||||
raise Error, upload.status if upload.is_errored?
|
||||
upload = preprocessor.finish!(upload)
|
||||
return if upload.is_errored?
|
||||
raise Error, upload.status if upload.is_errored?
|
||||
md5_changed = upload.md5 != post.md5
|
||||
|
||||
replacement.replacement_url = find_replacement_url(replacement, upload)
|
||||
|
||||
@@ -674,7 +674,7 @@ class UploadServiceTest < ActiveSupport::TestCase
|
||||
end
|
||||
|
||||
should "throw an error" do
|
||||
assert_raises(ActiveRecord::RecordNotUnique) do
|
||||
assert_raises(UploadService::Replacer::Error) do
|
||||
as_user { @post2.replace!(replacement_url: @new_url) }
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user