From 3414d27c78b113c8170204b2575bfb5d9f870aee Mon Sep 17 00:00:00 2001 From: evazion Date: Sat, 22 Sep 2018 17:17:35 -0500 Subject: [PATCH] post replacements: fix self-replacements; don't swallow upload errors. --- app/logical/upload_service/replacer.rb | 6 ++++-- test/models/upload_service_test.rb | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/logical/upload_service/replacer.rb b/app/logical/upload_service/replacer.rb index daec6d66b..486eab3b2 100644 --- a/app/logical/upload_service/replacer.rb +++ b/app/logical/upload_service/replacer.rb @@ -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) diff --git a/test/models/upload_service_test.rb b/test/models/upload_service_test.rb index e97c88a01..8b8e82410 100644 --- a/test/models/upload_service_test.rb +++ b/test/models/upload_service_test.rb @@ -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