forked from e621ng/e621ng
[TagRelationships] Fix aliases/implications being left in queued state
This wasn't going through the error handler
This commit is contained in:
parent
9f796049a3
commit
f59399ed67
@ -179,15 +179,11 @@ class TagAlias < TagRelationship
|
||||
end
|
||||
|
||||
def process!(update_topic: true)
|
||||
unless valid?
|
||||
raise errors.full_messages.join("; ")
|
||||
end
|
||||
|
||||
tries = 0
|
||||
|
||||
begin
|
||||
CurrentUser.scoped(approver) do
|
||||
update(status: "processing")
|
||||
update!(status: "processing")
|
||||
move_aliases_and_implications
|
||||
ensure_category_consistency
|
||||
update_posts_locked_tags
|
||||
@ -210,7 +206,7 @@ class TagAlias < TagRelationship
|
||||
|
||||
CurrentUser.scoped(approver) do
|
||||
forum_updater.update(failure_message(e), "FAILED") if update_topic
|
||||
update(status: "error: #{e}")
|
||||
update_columns(status: "error: #{e}")
|
||||
end
|
||||
|
||||
DanbooruLogger.log(e, tag_alias_id: id, antecedent_name: antecedent_name, consequent_name: consequent_name)
|
||||
|
@ -115,15 +115,11 @@ class TagImplication < TagRelationship
|
||||
|
||||
module ApprovalMethods
|
||||
def process!(update_topic: true)
|
||||
unless valid?
|
||||
raise errors.full_messages.join("; ")
|
||||
end
|
||||
|
||||
tries = 0
|
||||
|
||||
begin
|
||||
CurrentUser.scoped(approver) do
|
||||
update(status: "processing")
|
||||
update!(status: "processing")
|
||||
update_posts
|
||||
update(status: "active")
|
||||
update_descendant_names_for_parents
|
||||
@ -137,7 +133,7 @@ class TagImplication < TagRelationship
|
||||
end
|
||||
|
||||
forum_updater.update(failure_message(e), "FAILED") if update_topic
|
||||
update(status: "error: #{e}")
|
||||
update_columns(status: "error: #{e}")
|
||||
|
||||
DanbooruLogger.log(e, tag_implication_id: id, antecedent_name: antecedent_name, consequent_name: consequent_name)
|
||||
end
|
||||
|
@ -3,5 +3,6 @@ FactoryBot.define do
|
||||
antecedent_name { "aaa" }
|
||||
consequent_name { "bbb" }
|
||||
status { "active" }
|
||||
creator_ip_addr { "127.0.0.1" }
|
||||
end
|
||||
end
|
||||
|
@ -127,7 +127,7 @@ class TagAliasTest < ActiveSupport::TestCase
|
||||
tag1 = create(:tag, name: "aaa", category: 1)
|
||||
tag2 = create(:tag, name: "bbb", category: 3)
|
||||
ta = create(:tag_alias, antecedent_name: "aaa", consequent_name: "bbb")
|
||||
ta.approve!(approver: @admin)
|
||||
with_inline_jobs { ta.approve!(approver: @admin) }
|
||||
|
||||
assert_equal(3, tag2.reload.category)
|
||||
end
|
||||
@ -145,11 +145,20 @@ class TagAliasTest < ActiveSupport::TestCase
|
||||
tag1 = create(:tag, name: "aaa", category: 1)
|
||||
tag2 = create(:tag, name: "bbb", category: 3, is_locked: true)
|
||||
ta = create(:tag_alias, antecedent_name: "aaa", consequent_name: "bbb")
|
||||
ta.approve!(approver: @admin)
|
||||
with_inline_jobs { ta.approve!(approver: @admin) }
|
||||
|
||||
assert_equal(3, tag2.reload.category)
|
||||
end
|
||||
|
||||
should "error on approve if its not valid anymore" do
|
||||
create(:tag_alias, antecedent_name: "aaa", consequent_name: "bbb", status: "active")
|
||||
ta = build(:tag_alias, antecedent_name: "aaa", consequent_name: "bbb", creator: @admin)
|
||||
ta.save(validate: false)
|
||||
with_inline_jobs { ta.approve!(approver: @admin) }
|
||||
|
||||
assert_match "error", ta.reload.status
|
||||
end
|
||||
|
||||
context "with an associated forum topic" do
|
||||
setup do
|
||||
@admin = create(:admin_user)
|
||||
|
@ -220,6 +220,15 @@ class TagImplicationTest < ActiveSupport::TestCase
|
||||
assert_equal("aaa bbb ccc xxx yyy", p1.reload.tag_string)
|
||||
end
|
||||
|
||||
should "error on approve if its not valid anymore" do
|
||||
create(:tag_implication, antecedent_name: "aaa", consequent_name: "bbb", status: "active")
|
||||
ti = build(:tag_implication, antecedent_name: "aaa", consequent_name: "bbb", creator: @user)
|
||||
ti.save(validate: false)
|
||||
with_inline_jobs { ti.approve!(approver: @user) }
|
||||
|
||||
assert_match "error", ti.reload.status
|
||||
end
|
||||
|
||||
context "with an associated forum topic" do
|
||||
setup do
|
||||
@admin = create(:admin_user)
|
||||
|
Loading…
Reference in New Issue
Block a user