@@ -64,30 +64,35 @@ class WorkerTest < ActiveSupport::TestCase
64
64
65
65
test "polling queries are logged" do
66
66
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
72
73
73
74
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
77
75
end
78
76
79
77
test "polling queries can be silenced" do
80
78
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
86
85
87
86
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
91
96
end
92
97
93
98
test "run inline" do
@@ -100,4 +105,19 @@ class WorkerTest < ActiveSupport::TestCase
100
105
101
106
assert_equal 5 , JobResult . where ( queue_name : :background , status : "completed" , value : :immediate ) . count
102
107
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
103
123
end
0 commit comments