mirror of https://github.com/rails/rails
Fix Active Job skips
Similarly to Action Mailbox, these tests didn't pass because the skip patch was included before ActiveSupport::TestCase was defined. Moving the patch to the bottom of the file fixes the issue. Once the skip patch was fixed, all of the skips were due to differences in adapters which aren't really test skips as much as tests that should not ever run against those adapters.
This commit is contained in:
parent
ec3d392e20
commit
d64acfdcac
|
@ -26,7 +26,6 @@ class QueuingTest < ActiveSupport::TestCase
|
|||
result = HelloJob.set(wait_until: 1.second.ago).perform_later "Jamie"
|
||||
assert result
|
||||
rescue NotImplementedError
|
||||
skip
|
||||
end
|
||||
|
||||
test "job returned by enqueue has the arguments available" do
|
||||
|
@ -38,7 +37,6 @@ class QueuingTest < ActiveSupport::TestCase
|
|||
job = HelloJob.set(wait_until: Time.utc(2014, 1, 1)).perform_later
|
||||
assert_equal Time.utc(2014, 1, 1), job.scheduled_at
|
||||
rescue NotImplementedError
|
||||
skip
|
||||
end
|
||||
|
||||
test "job is yielded to block after enqueue with successfully_enqueued property set" do
|
||||
|
@ -82,7 +80,6 @@ class QueuingTest < ActiveSupport::TestCase
|
|||
ActiveJob.perform_all_later(scheduled_job_1, scheduled_job_2)
|
||||
assert_equal ["Scheduled 2014 says hello", "Scheduled 2015 says hello"], JobBuffer.values.sort
|
||||
rescue NotImplementedError
|
||||
skip
|
||||
end
|
||||
|
||||
test "perform_all_later instrumentation" do
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../../tools/test_common"
|
||||
|
||||
require "active_support/testing/strict_warnings"
|
||||
require "active_job"
|
||||
require "support/job_buffer"
|
||||
|
@ -23,3 +21,5 @@ require "active_support/testing/autorun"
|
|||
def adapter_is?(*adapter_class_symbols)
|
||||
adapter_class_symbols.map(&:to_s).include? ActiveJob::Base.queue_adapter_name
|
||||
end
|
||||
|
||||
require_relative "../../tools/test_common"
|
||||
|
|
|
@ -13,58 +13,60 @@ class QueuingTest < ActiveSupport::TestCase
|
|||
assert_job_executed
|
||||
end
|
||||
|
||||
test "should not run jobs queued on a non-listening queue" do
|
||||
skip if adapter_is?(:inline, :async, :sucker_punch)
|
||||
old_queue = TestJob.queue_name
|
||||
unless adapter_is?(:inline, :async, :sucker_punch)
|
||||
test "should not run jobs queued on a non-listening queue" do
|
||||
old_queue = TestJob.queue_name
|
||||
|
||||
begin
|
||||
TestJob.queue_as :some_other_queue
|
||||
TestJob.perform_later @id
|
||||
wait_for_jobs_to_finish_for(2.seconds)
|
||||
assert_job_not_executed
|
||||
ensure
|
||||
TestJob.queue_name = old_queue
|
||||
begin
|
||||
TestJob.queue_as :some_other_queue
|
||||
TestJob.perform_later @id
|
||||
wait_for_jobs_to_finish_for(2.seconds)
|
||||
assert_job_not_executed
|
||||
ensure
|
||||
TestJob.queue_name = old_queue
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
test "should supply a wrapped class name to Sidekiq" do
|
||||
skip unless adapter_is?(:sidekiq)
|
||||
Sidekiq::Testing.fake! do
|
||||
if adapter_is?(:sidekiq)
|
||||
test "should supply a wrapped class name to Sidekiq" do
|
||||
Sidekiq::Testing.fake! do
|
||||
::HelloJob.perform_later
|
||||
hash = ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper.jobs.first
|
||||
assert_equal "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper", hash["class"]
|
||||
assert_equal "HelloJob", hash["wrapped"]
|
||||
end
|
||||
end
|
||||
|
||||
test "should access provider_job_id inside Sidekiq job" do
|
||||
Sidekiq::Testing.inline! do
|
||||
job = ::ProviderJidJob.perform_later
|
||||
assert_equal "Provider Job ID: #{job.provider_job_id}", JobBuffer.last_value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if adapter_is?(:delayed_job)
|
||||
test "should supply a wrapped class name to DelayedJob" do
|
||||
::HelloJob.perform_later
|
||||
hash = ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper.jobs.first
|
||||
assert_equal "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper", hash["class"]
|
||||
assert_equal "HelloJob", hash["wrapped"]
|
||||
job = Delayed::Job.first
|
||||
assert_match(/HelloJob \[[0-9a-f-]+\] from DelayedJob\(default\) with arguments: \[\]/, job.name)
|
||||
end
|
||||
end
|
||||
|
||||
test "should access provider_job_id inside Sidekiq job" do
|
||||
skip unless adapter_is?(:sidekiq)
|
||||
Sidekiq::Testing.inline! do
|
||||
job = ::ProviderJidJob.perform_later
|
||||
assert_equal "Provider Job ID: #{job.provider_job_id}", JobBuffer.last_value
|
||||
if adapter_is?(:resque)
|
||||
test "resque JobWrapper should have instance variable queue" do
|
||||
job = ::HelloJob.set(wait: 5.seconds).perform_later
|
||||
hash = Resque.decode(Resque.find_delayed_selection { true }[0])
|
||||
assert_equal hash["queue"], job.queue_name
|
||||
end
|
||||
end
|
||||
|
||||
test "should supply a wrapped class name to DelayedJob" do
|
||||
skip unless adapter_is?(:delayed_job)
|
||||
::HelloJob.perform_later
|
||||
job = Delayed::Job.first
|
||||
assert_match(/HelloJob \[[0-9a-f-]+\] from DelayedJob\(default\) with arguments: \[\]/, job.name)
|
||||
end
|
||||
|
||||
test "resque JobWrapper should have instance variable queue" do
|
||||
skip unless adapter_is?(:resque)
|
||||
job = ::HelloJob.set(wait: 5.seconds).perform_later
|
||||
hash = Resque.decode(Resque.find_delayed_selection { true }[0])
|
||||
assert_equal hash["queue"], job.queue_name
|
||||
end
|
||||
|
||||
test "should not run job enqueued in the future" do
|
||||
TestJob.set(wait: 10.minutes).perform_later @id
|
||||
wait_for_jobs_to_finish_for(5.seconds)
|
||||
assert_job_not_executed
|
||||
rescue NotImplementedError
|
||||
skip
|
||||
end
|
||||
|
||||
test "should run job enqueued in the future at the specified time" do
|
||||
|
@ -74,7 +76,6 @@ class QueuingTest < ActiveSupport::TestCase
|
|||
wait_for_jobs_to_finish_for(10.seconds)
|
||||
assert_job_executed
|
||||
rescue NotImplementedError
|
||||
skip
|
||||
end
|
||||
|
||||
test "should run job bulk enqueued in the future at the specified time" do
|
||||
|
@ -84,25 +85,22 @@ class QueuingTest < ActiveSupport::TestCase
|
|||
wait_for_jobs_to_finish_for(10.seconds)
|
||||
assert_job_executed
|
||||
rescue NotImplementedError
|
||||
skip
|
||||
end
|
||||
|
||||
test "should supply a provider_job_id when available for immediate jobs" do
|
||||
skip unless adapter_is?(:async, :delayed_job, :sidekiq, :queue_classic)
|
||||
test_job = TestJob.perform_later @id
|
||||
assert test_job.provider_job_id, "Provider job id should be set by provider"
|
||||
if adapter_is?(:async, :delayed_job, :sidekiq, :queue_classic)
|
||||
test "should supply a provider_job_id when available for immediate jobs" do
|
||||
test_job = TestJob.perform_later @id
|
||||
assert test_job.provider_job_id, "Provider job id should be set by provider"
|
||||
end
|
||||
|
||||
test "should supply a provider_job_id when available for delayed jobs" do
|
||||
delayed_test_job = TestJob.set(wait: 1.minute).perform_later @id
|
||||
assert delayed_test_job.provider_job_id, "Provider job id should by set for delayed jobs by provider"
|
||||
end
|
||||
end
|
||||
|
||||
test "should supply a provider_job_id when available for delayed jobs" do
|
||||
skip unless adapter_is?(:async, :delayed_job, :sidekiq, :queue_classic)
|
||||
delayed_test_job = TestJob.set(wait: 1.minute).perform_later @id
|
||||
assert delayed_test_job.provider_job_id, "Provider job id should by set for delayed jobs by provider"
|
||||
end
|
||||
|
||||
test "current locale is kept while running perform_later" do
|
||||
skip if adapter_is?(:inline)
|
||||
|
||||
begin
|
||||
unless adapter_is?(:inline)
|
||||
test "current locale is kept while running perform_later" do
|
||||
I18n.available_locales = [:en, :de]
|
||||
I18n.locale = :de
|
||||
|
||||
|
@ -114,12 +112,8 @@ class QueuingTest < ActiveSupport::TestCase
|
|||
I18n.available_locales = [:en]
|
||||
I18n.locale = :en
|
||||
end
|
||||
end
|
||||
|
||||
test "current timezone is kept while running perform_later" do
|
||||
skip if adapter_is?(:inline)
|
||||
|
||||
begin
|
||||
test "current timezone is kept while running perform_later" do
|
||||
current_zone = Time.zone
|
||||
Time.zone = "Hawaii"
|
||||
|
||||
|
@ -132,28 +126,28 @@ class QueuingTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
test "should run job with higher priority first" do
|
||||
skip unless adapter_is?(:delayed_job)
|
||||
|
||||
wait_until = Time.now + 3.seconds
|
||||
TestJob.set(wait_until: wait_until, priority: 20).perform_later "#{@id}.1"
|
||||
TestJob.set(wait_until: wait_until, priority: 10).perform_later "#{@id}.2"
|
||||
wait_for_jobs_to_finish_for(10.seconds)
|
||||
assert_job_executed "#{@id}.1"
|
||||
assert_job_executed "#{@id}.2"
|
||||
assert_job_executed_before("#{@id}.2", "#{@id}.1")
|
||||
if adapter_is?(:delayed_job)
|
||||
test "should run job with higher priority first" do
|
||||
wait_until = Time.now + 3.seconds
|
||||
TestJob.set(wait_until: wait_until, priority: 20).perform_later "#{@id}.1"
|
||||
TestJob.set(wait_until: wait_until, priority: 10).perform_later "#{@id}.2"
|
||||
wait_for_jobs_to_finish_for(10.seconds)
|
||||
assert_job_executed "#{@id}.1"
|
||||
assert_job_executed "#{@id}.2"
|
||||
assert_job_executed_before("#{@id}.2", "#{@id}.1")
|
||||
end
|
||||
end
|
||||
|
||||
test "should run job with higher priority first in Backburner" do
|
||||
skip unless adapter_is?(:backburner)
|
||||
|
||||
jobs_manager.tube.pause(3)
|
||||
TestJob.set(priority: 20).perform_later "#{@id}.1"
|
||||
TestJob.set(priority: 10).perform_later "#{@id}.2"
|
||||
wait_for_jobs_to_finish_for(10.seconds)
|
||||
assert_job_executed "#{@id}.1"
|
||||
assert_job_executed "#{@id}.2"
|
||||
assert_job_executed_before("#{@id}.2", "#{@id}.1")
|
||||
if adapter_is?(:backburner)
|
||||
test "should run job with higher priority first in Backburner" do
|
||||
jobs_manager.tube.pause(3)
|
||||
TestJob.set(priority: 20).perform_later "#{@id}.1"
|
||||
TestJob.set(priority: 10).perform_later "#{@id}.2"
|
||||
wait_for_jobs_to_finish_for(10.seconds)
|
||||
assert_job_executed "#{@id}.1"
|
||||
assert_job_executed "#{@id}.2"
|
||||
assert_job_executed_before("#{@id}.2", "#{@id}.1")
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
|
Loading…
Reference in New Issue