From 7714d196191bbddae4b5992bc1665fa9f6891b7f Mon Sep 17 00:00:00 2001 From: jejacks0n Date: Tue, 9 Sep 2014 19:57:39 -0600 Subject: [PATCH] extracts worker.perform so call can be enhanced - defines execute_job as an API hook --- lib/sidekiq/processor.rb | 6 +++++- lib/sidekiq/testing.rb | 8 ++++++-- test/test_processor.rb | 6 ++++++ test/test_testing_fake.rb | 6 ++++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/sidekiq/processor.rb b/lib/sidekiq/processor.rb index 3c9bcab1..70439178 100644 --- a/lib/sidekiq/processor.rb +++ b/lib/sidekiq/processor.rb @@ -49,7 +49,7 @@ module Sidekiq stats(worker, msg, queue) do Sidekiq.server_middleware.invoke(worker, msg, queue) do - worker.perform(*cloned(msg['args'])) + execute_job(worker, cloned(msg['args'])) end end rescue Sidekiq::Shutdown @@ -71,6 +71,10 @@ module Sidekiq "" end + def execute_job(worker, cloned_args) + worker.perform(*cloned_args) + end + private def thread_identity diff --git a/lib/sidekiq/testing.rb b/lib/sidekiq/testing.rb index 3f79e2be..5292daf5 100644 --- a/lib/sidekiq/testing.rb +++ b/lib/sidekiq/testing.rb @@ -153,7 +153,7 @@ module Sidekiq while job = jobs.shift do worker = new worker.jid = job['jid'] - worker.perform(*job['args']) + execute_job(worker, job['args']) end end @@ -163,7 +163,11 @@ module Sidekiq job = jobs.shift worker = new worker.jid = job['jid'] - worker.perform(*job['args']) + execute_job(worker, job['args']) + end + + def execute_job(worker, args) + worker.perform(*args) end end diff --git a/test/test_processor.rb b/test/test_processor.rb index 0ae70c06..58bc6544 100644 --- a/test/test_processor.rb +++ b/test/test_processor.rb @@ -39,6 +39,12 @@ class TestProcessor < Sidekiq::Test assert_equal 1, $invokes end + it 'executes a worker as expected' do + worker = Minitest::Mock.new + worker.expect(:perform, nil, [1, 2, 3]) + @processor.execute_job(worker, [1, 2, 3]) + end + it 'passes exceptions to ExceptionHandler' do actor = Minitest::Mock.new actor.expect(:real_thread, nil, [nil, Thread]) diff --git a/test/test_testing_fake.rb b/test/test_testing_fake.rb index eb6214f4..887ff31a 100644 --- a/test/test_testing_fake.rb +++ b/test/test_testing_fake.rb @@ -261,5 +261,11 @@ class TestTesting < Sidekiq::Test assert_equal 1, FirstWorker.count assert_equal 1, SecondWorker.count end + + it 'can execute a job' do + worker = Minitest::Mock.new + worker.expect(:perform, nil, [1, 2, 3]) + DirectWorker.execute_job(worker, [1, 2, 3]) + end end end