Use with_settings for temporary changes to settings

This commit is contained in:
Tom Hughes 2024-02-01 18:37:28 +00:00
parent e83f0bd131
commit b9c5df4dad
4 changed files with 17 additions and 43 deletions

View file

@ -677,7 +677,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
get diary_rss_path
assert_select "rss>channel>item", :count => 2
with_diary_feed_delay(6) do
with_settings(:diary_feed_delay => 6) do
get diary_rss_path
assert_select "rss>channel>item", :count => 1
end
@ -1003,13 +1003,4 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
assert_select "a[href=?]", "/user/#{ERB::Util.u(entry.user.display_name)}/diary/#{entry.id}"
end
end
def with_diary_feed_delay(value)
diary_feed_delay = Settings.diary_feed_delay
Settings.diary_feed_delay = value
yield
Settings.diary_feed_delay = diary_feed_delay
end
end

View file

@ -214,7 +214,7 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
# Check that sending a message fails when the message limit is hit
assert_no_difference "ActionMailer::Base.deliveries.size" do
assert_no_difference "Message.count" do
with_message_limit(0) do
with_settings(:max_messages_per_hour => 0) do
perform_enqueued_jobs do
post messages_path(:display_name => recipient_user.display_name,
:message => { :title => "Test Message", :body => "Test message body" })
@ -472,15 +472,4 @@ class MessagesControllerTest < ActionDispatch::IntegrationTest
assert_response :not_found
assert_template "no_such_message"
end
private
def with_message_limit(value)
max_messages_per_hour = Settings.max_messages_per_hour
Settings.max_messages_per_hour = value
yield
Settings.max_messages_per_hour = max_messages_per_hour
end
end

View file

@ -235,9 +235,7 @@ class RelationTest < ActiveSupport::TestCase
# the maximum number of members in a relation.
def test_max_members_per_relation_limit
# Speed up unit test by using a small relation member limit
default_limit = Settings.max_number_of_relation_members
Settings.max_number_of_relation_members = 20
with_settings(:max_number_of_relation_members => 20) do
user = create(:user)
changeset = create(:changeset, :user => user)
relation = create(:relation, :changeset => changeset)
@ -250,7 +248,6 @@ class RelationTest < ActiveSupport::TestCase
assert_raise OSM::APITooManyRelationMembersError do
relation.create_with_history user
end
Settings.max_number_of_relation_members = default_limit
end
end
end

View file

@ -384,14 +384,11 @@ module ActiveSupport
Settings.merge!(saved_settings)
end
def with_user_account_deletion_delay(value)
def with_user_account_deletion_delay(value, &block)
freeze_time
default_value = Settings.user_account_deletion_delay
Settings.user_account_deletion_delay = value
yield
Settings.user_account_deletion_delay = default_value
with_settings(:user_account_deletion_delay => value, &block)
ensure
unfreeze_time
end
end