From f336a828471ea6c1f3ff6da3e724380dc4778da3 Mon Sep 17 00:00:00 2001 From: Alex Schmitt Date: Fri, 25 Oct 2024 10:55:08 -0700 Subject: [PATCH] Fix `Resque::Scheduler.print_schedule` Added in https://github.com/resque/resque-scheduler/commit/893f13cfde48b1634faef8a870b134e8e9757661, this is intended to help with debugging. The `:t` and `:last` attrs were removed in the https://github.com/jmettraux/rufus-scheduler/compare/v2.0.24...v3.0.0 It seems `#print_schedule` likely hasn't worked since the `rufus-scheduler` depenency was bumped to require ~3.0 in https://github.com/resque/resque-scheduler/commit/d24657e2b2babeb660ebfceb2d78b0e755199c33#diff-9732d81ad66d6656923a3883e83f6620a3b16a07484745677a0776f6e0bff025. This fixes the `OpenStruct` warnings seen in tests for newer Ruby versions. --- lib/resque/scheduler.rb | 4 ++-- test/scheduler_test.rb | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/resque/scheduler.rb b/lib/resque/scheduler.rb index 9c9be094..cbd725a6 100644 --- a/lib/resque/scheduler.rb +++ b/lib/resque/scheduler.rb @@ -86,8 +86,8 @@ def print_schedule if rufus_scheduler log! "Scheduling Info\tLast Run" scheduler_jobs = rufus_scheduler.jobs - scheduler_jobs.each do |_k, v| - log! "#{v.t}\t#{v.last}\t" + scheduler_jobs.each do |job| + log! "#{job.opts}\t#{job.last_time}\t" end end end diff --git a/test/scheduler_test.rb b/test/scheduler_test.rb index 124ae6b2..51c0b34a 100644 --- a/test/scheduler_test.rb +++ b/test/scheduler_test.rb @@ -589,15 +589,15 @@ def enqueue_started! context 'printing schedule' do setup do - Resque::Scheduler.expects(:log!).at_least_once + Resque::Scheduler.stubs(:log!) end test 'prints schedule' do - fake_rufus_scheduler = mock - fake_rufus_scheduler.expects(:jobs).at_least_once - .returns(foo: OpenStruct.new(t: nil, last: nil)) - Resque::Scheduler.expects(:rufus_scheduler).at_least_once - .returns(fake_rufus_scheduler) + rufus_scheduler = Rufus::Scheduler.new + fake_job = rufus_scheduler.at(Time.now + 1, job: true) {} + Resque::Scheduler.expects(:rufus_scheduler).at_least_once.returns(rufus_scheduler) + Resque::Scheduler.expects(:log!).with("#{fake_job.opts}\t#{fake_job.last_time}\t") + Resque::Scheduler.print_schedule end end