mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Migrate score settings to use sensitivities
We hide scores so these settings no longer made sense.
This commit is contained in:
@@ -12,8 +12,9 @@ describe "spam rules for users" do
|
||||
fab!(:user2) { Fabricate(:user) }
|
||||
|
||||
before do
|
||||
SiteSetting.score_required_to_hide_post = 0
|
||||
SiteSetting.spam_score_to_silence_new_user = 4.0
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:disabled]
|
||||
Reviewable.set_priorities(high: 4.0)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:low]
|
||||
SiteSetting.num_users_to_silence_new_user = 2
|
||||
end
|
||||
|
||||
@@ -73,9 +74,10 @@ describe "spam rules for users" do
|
||||
end
|
||||
end
|
||||
|
||||
context 'score_required_to_hide_post takes effect too' do
|
||||
context 'hide_post_sensitivity' do
|
||||
it 'should silence the spammer' do
|
||||
SiteSetting.score_required_to_hide_post = 2.0
|
||||
Reviewable.set_priorities(high: 2.0)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:low]
|
||||
PostActionCreator.create(user2, spam_post, :spam)
|
||||
expect(spammer.reload).to be_silenced
|
||||
expect(Guardian.new(spammer).can_create_topic?(nil)).to be false
|
||||
|
||||
@@ -517,7 +517,8 @@ describe PostAction do
|
||||
mod = Fabricate(:moderator)
|
||||
post = Fabricate(:post, user: mod)
|
||||
|
||||
SiteSetting.score_required_to_hide_post = 2.0
|
||||
Reviewable.set_priorities(high: 2.0)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:low]
|
||||
Discourse.stubs(:site_contact_user).returns(admin)
|
||||
|
||||
PostActionCreator.spam(eviltrout, post)
|
||||
@@ -531,7 +532,8 @@ describe PostAction do
|
||||
mod = Fabricate(:moderator)
|
||||
post = Fabricate(:post, user: mod)
|
||||
|
||||
SiteSetting.score_required_to_hide_post = 8.0
|
||||
Reviewable.set_priorities(high: 8.0)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:low]
|
||||
Discourse.stubs(:site_contact_user).returns(admin)
|
||||
|
||||
PostActionCreator.spam(eviltrout, post)
|
||||
@@ -547,7 +549,8 @@ describe PostAction do
|
||||
post = create_post
|
||||
walterwhite = Fabricate(:walter_white)
|
||||
|
||||
SiteSetting.score_required_to_hide_post = 3.0
|
||||
Reviewable.set_priorities(high: 3.0)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:low]
|
||||
Discourse.stubs(:site_contact_user).returns(admin)
|
||||
|
||||
PostActionCreator.spam(eviltrout, post)
|
||||
@@ -707,8 +710,9 @@ describe PostAction do
|
||||
fab!(:flagger2) { Fabricate(:user) }
|
||||
|
||||
before do
|
||||
SiteSetting.score_required_to_hide_post = 0
|
||||
SiteSetting.score_to_auto_close_topic = 12.0
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:disabled]
|
||||
Reviewable.set_priorities(high: 4.5)
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:low]
|
||||
SiteSetting.num_flaggers_to_close_topic = 2
|
||||
SiteSetting.num_hours_to_close_topic = 1
|
||||
end
|
||||
@@ -769,7 +773,8 @@ describe PostAction do
|
||||
freeze_time
|
||||
|
||||
SiteSetting.num_flaggers_to_close_topic = 1
|
||||
SiteSetting.score_to_auto_close_topic = 2.0
|
||||
Reviewable.set_priorities(high: 0.5)
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:low]
|
||||
|
||||
post = Fabricate(:post, topic: topic)
|
||||
PostActionCreator.spam(flagger1, post)
|
||||
@@ -792,7 +797,8 @@ describe PostAction do
|
||||
|
||||
freeze_time timer.execute_at
|
||||
SiteSetting.num_flaggers_to_close_topic = 10
|
||||
SiteSetting.score_to_auto_close_topic = 20.0
|
||||
Reviewable.set_priorities(high: 10.0)
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:low]
|
||||
|
||||
Jobs::ToggleTopicClosed.new.execute(topic_timer_id: timer.id, state: false)
|
||||
|
||||
|
||||
@@ -87,7 +87,8 @@ RSpec.describe ReviewableQueuedPost, type: :model do
|
||||
newuser.update!(trust_level: 0)
|
||||
post = Fabricate(:post, user: newuser)
|
||||
PostActionCreator.spam(moderator, post)
|
||||
SiteSetting.spam_score_to_silence_new_user = 1
|
||||
Reviewable.set_priorities(high: 1.0)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:low]
|
||||
SiteSetting.num_users_to_silence_new_user = 1
|
||||
expect(Guardian.new(newuser).can_create_post?(topic)).to eq(false)
|
||||
|
||||
|
||||
@@ -282,6 +282,73 @@ RSpec.describe Reviewable, type: :model do
|
||||
end
|
||||
end
|
||||
|
||||
context ".score_required_to_hide_post" do
|
||||
it "returns 10 if we can't calculated any percentiles" do
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:low]
|
||||
expect(Reviewable.score_required_to_hide_post).to eq(10.0)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:medium]
|
||||
expect(Reviewable.score_required_to_hide_post).to eq(10.0)
|
||||
end
|
||||
|
||||
it "returns a fraction of the high percentile" do
|
||||
Reviewable.set_priorities(high: 100.0)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:disabled]
|
||||
expect(Reviewable.score_required_to_hide_post.to_f.truncate(2)).to eq(Float::MAX)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:low]
|
||||
expect(Reviewable.score_required_to_hide_post.to_f.truncate(2)).to eq(100.0)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:medium]
|
||||
expect(Reviewable.score_required_to_hide_post.to_f.truncate(2)).to eq(66.66)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:high]
|
||||
expect(Reviewable.score_required_to_hide_post.to_f.truncate(2)).to eq(33.33)
|
||||
end
|
||||
end
|
||||
|
||||
context ".spam_score_to_silence_new_user" do
|
||||
it "returns 6 if we can't calculated any percentiles" do
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:low]
|
||||
expect(Reviewable.spam_score_to_silence_new_user).to eq(6.0)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:medium]
|
||||
expect(Reviewable.spam_score_to_silence_new_user).to eq(6.0)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:high]
|
||||
expect(Reviewable.spam_score_to_silence_new_user).to eq(6.0)
|
||||
end
|
||||
|
||||
it "returns a fraction of the high percentile" do
|
||||
Reviewable.set_priorities(high: 100.0)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:disabled]
|
||||
expect(Reviewable.spam_score_to_silence_new_user.to_f.truncate(2)).to eq(Float::MAX)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:low]
|
||||
expect(Reviewable.spam_score_to_silence_new_user.to_f.truncate(2)).to eq(60.0)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:medium]
|
||||
expect(Reviewable.spam_score_to_silence_new_user.to_f.truncate(2)).to eq(39.99)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:high]
|
||||
expect(Reviewable.spam_score_to_silence_new_user.to_f.truncate(2)).to eq(19.99)
|
||||
end
|
||||
end
|
||||
|
||||
context ".score_to_auto_close_topic" do
|
||||
it "returns 25 if we can't calculated any percentiles" do
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:low]
|
||||
expect(Reviewable.score_to_auto_close_topic).to eq(25.0)
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:medium]
|
||||
expect(Reviewable.score_to_auto_close_topic).to eq(25.0)
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:high]
|
||||
expect(Reviewable.score_to_auto_close_topic).to eq(25.0)
|
||||
end
|
||||
|
||||
it "returns a fraction of the high percentile" do
|
||||
Reviewable.set_priorities(high: 100.0)
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:disabled]
|
||||
expect(Reviewable.score_to_auto_close_topic.to_f.truncate(2)).to eq(Float::MAX)
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:low]
|
||||
expect(Reviewable.score_to_auto_close_topic.to_f.truncate(2)).to eq(250.0)
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:medium]
|
||||
expect(Reviewable.score_to_auto_close_topic.to_f.truncate(2)).to eq(166.66)
|
||||
SiteSetting.auto_close_topic_sensitivity = Reviewable.sensitivity[:high]
|
||||
expect(Reviewable.score_to_auto_close_topic.to_f.truncate(2)).to eq(83.33)
|
||||
end
|
||||
end
|
||||
|
||||
context "priorities" do
|
||||
it "returns 0 for unknown priorities" do
|
||||
expect(Reviewable.min_score_for_priority(:wat)).to eq(0.0)
|
||||
|
||||
@@ -115,7 +115,8 @@ RSpec.describe Admin::FlagsController do
|
||||
|
||||
context '#disagree' do
|
||||
it "unhides the post and unsilences the user if disagreed" do
|
||||
SiteSetting.spam_score_to_silence_new_user = 1.0
|
||||
Reviewable.set_priorities(high: 1.0)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:low]
|
||||
SiteSetting.num_users_to_silence_new_user = 1
|
||||
|
||||
new_user = Fabricate(:newuser)
|
||||
|
||||
@@ -5,8 +5,9 @@ require 'rails_helper'
|
||||
describe SpamRule::AutoSilence do
|
||||
|
||||
before do
|
||||
SiteSetting.score_required_to_hide_post = 0 # never
|
||||
SiteSetting.spam_score_to_silence_new_user = 4.0
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:disabled]
|
||||
Reviewable.set_priorities(high: 4.0)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:low]
|
||||
SiteSetting.num_users_to_silence_new_user = 2
|
||||
end
|
||||
|
||||
@@ -21,7 +22,8 @@ describe SpamRule::AutoSilence do
|
||||
end
|
||||
|
||||
it 'delivers punishment when user should be silenced' do
|
||||
SiteSetting.spam_score_to_silence_new_user = 2.0
|
||||
Reviewable.set_priorities(high: 2.0)
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:low]
|
||||
SiteSetting.num_users_to_silence_new_user = 1
|
||||
PostActionCreator.spam(Discourse.system_user, post)
|
||||
subject.perform
|
||||
@@ -194,8 +196,8 @@ describe SpamRule::AutoSilence do
|
||||
expect(subject.should_autosilence?).to eq(false)
|
||||
end
|
||||
|
||||
it 'returns false if spam_score_to_silence_new_user is 0' do
|
||||
SiteSetting.spam_score_to_silence_new_user = 0
|
||||
it 'returns false if silence_new_user_sensitivity is disabled' do
|
||||
SiteSetting.silence_new_user_sensitivity = Reviewable.sensitivity[:disabled]
|
||||
PostActionCreator.spam(flagger, post)
|
||||
PostActionCreator.spam(flagger2, post)
|
||||
expect(subject.should_autosilence?).to eq(false)
|
||||
|
||||
@@ -128,7 +128,8 @@ describe PostAlerter do
|
||||
coding_horror = Fabricate(:coding_horror)
|
||||
|
||||
PostActionNotifier.enable
|
||||
SiteSetting.score_required_to_hide_post = 4.0
|
||||
Reviewable.set_priorities(high: 4.0)
|
||||
SiteSetting.hide_post_sensitivity = Reviewable.sensitivity[:low]
|
||||
|
||||
PostActionCreator.spam(evil_trout, post)
|
||||
PostActionCreator.spam(walterwhite, post)
|
||||
|
||||
Reference in New Issue
Block a user