@@ -64,30 +64,35 @@ class WorkerTest < ActiveSupport::TestCase
6464
6565 test "polling queries are logged" do
6666 log = StringIO . new
67- old_logger , ActiveRecord ::Base . logger = ActiveRecord ::Base . logger , ActiveSupport ::Logger . new ( log )
68- old_silence_polling , SolidQueue . silence_polling = SolidQueue . silence_polling , false
69-
70- @worker . start
71- sleep 0.2
67+ with_active_record_logger ( ActiveSupport ::Logger . new ( log ) ) do
68+ with_polling ( silence : false ) do
69+ @worker . start
70+ sleep 0.2
71+ end
72+ end
7273
7374 assert_match /SELECT .* FROM .solid_queue_ready_executions. WHERE .solid_queue_ready_executions...queue_name./ , log . string
74- ensure
75- ActiveRecord ::Base . logger = old_logger
76- SolidQueue . silence_polling = old_silence_polling
7775 end
7876
7977 test "polling queries can be silenced" do
8078 log = StringIO . new
81- old_logger , ActiveRecord ::Base . logger = ActiveRecord ::Base . logger , ActiveSupport ::Logger . new ( log )
82- old_silence_polling , SolidQueue . silence_polling = SolidQueue . silence_polling , true
83-
84- @worker . start
85- sleep 0.2
79+ with_active_record_logger ( ActiveSupport ::Logger . new ( log ) ) do
80+ with_polling ( silence : true ) do
81+ @worker . start
82+ sleep 0.2
83+ end
84+ end
8685
8786 assert_no_match /SELECT .* FROM .solid_queue_ready_executions. WHERE .solid_queue_ready_executions...queue_name./ , log . string
88- ensure
89- ActiveRecord ::Base . logger = old_logger
90- SolidQueue . silence_polling = old_silence_polling
87+ end
88+
89+ test "silencing polling queries when there's no Active Record logger" do
90+ with_active_record_logger ( nil ) do
91+ with_polling ( silence : true ) do
92+ @worker . start
93+ sleep 0.2
94+ end
95+ end
9196 end
9297
9398 test "run inline" do
@@ -100,4 +105,19 @@ class WorkerTest < ActiveSupport::TestCase
100105
101106 assert_equal 5 , JobResult . where ( queue_name : :background , status : "completed" , value : :immediate ) . count
102107 end
108+
109+ private
110+ def with_polling ( silence :)
111+ old_silence_polling , SolidQueue . silence_polling = SolidQueue . silence_polling , silence
112+ yield
113+ ensure
114+ SolidQueue . silence_polling = old_silence_polling
115+ end
116+
117+ def with_active_record_logger ( logger )
118+ old_logger , ActiveRecord ::Base . logger = ActiveRecord ::Base . logger , logger
119+ yield
120+ ensure
121+ ActiveRecord ::Base . logger = old_logger
122+ end
103123end
0 commit comments