diff options
author | Yuji Yaginuma <yuuji.yaginuma@gmail.com> | 2017-02-01 06:37:16 +0900 |
---|---|---|
committer | Arthur Nogueira Neves <github@arthurnn.com> | 2017-01-31 16:37:16 -0500 |
commit | 80dc309821732c68a6fb347230c99f2f6abf2f6f (patch) | |
tree | e1ff98a75d5e2251b1b350c42fac3e01e8a935c8 /activejob/test | |
parent | a57b5292b0987c62d8567b253c9b54dc84b560d6 (diff) | |
download | rails-80dc309821732c68a6fb347230c99f2f6abf2f6f.tar.gz rails-80dc309821732c68a6fb347230c99f2f6abf2f6f.tar.bz2 rails-80dc309821732c68a6fb347230c99f2f6abf2f6f.zip |
correctly set test adapter when configure the queue adapter on a per job (#26690)
The `ActiveJob::TestHelper` replace the adapter to test adapter in
`before_setup`. It gets the target class using the `descendants`, but if
the test target job class is not loaded, will not be a replacement of
the adapter.
Therefore, instead of replacing with `before_setup`, modified to
replace when setting adapter.
Fixes #26360
Diffstat (limited to 'activejob/test')
-rw-r--r-- | activejob/test/cases/queue_adapter_test.rb | 1 | ||||
-rw-r--r-- | activejob/test/cases/test_helper_test.rb | 17 | ||||
-rw-r--r-- | activejob/test/jobs/queue_adapter_job.rb | 3 |
3 files changed, 21 insertions, 0 deletions
diff --git a/activejob/test/cases/queue_adapter_test.rb b/activejob/test/cases/queue_adapter_test.rb index f1e0cf78ad..9611b0909b 100644 --- a/activejob/test/cases/queue_adapter_test.rb +++ b/activejob/test/cases/queue_adapter_test.rb @@ -21,6 +21,7 @@ class QueueAdapterTest < ActiveJob::TestCase end test "should allow overriding the queue_adapter at the child class level without affecting the parent or its sibling" do + ActiveJob::Base.disable_test_adapter base_queue_adapter = ActiveJob::Base.queue_adapter child_job_one = Class.new(ActiveJob::Base) diff --git a/activejob/test/cases/test_helper_test.rb b/activejob/test/cases/test_helper_test.rb index 372b68c2f5..2e6357f824 100644 --- a/activejob/test/cases/test_helper_test.rb +++ b/activejob/test/cases/test_helper_test.rb @@ -560,3 +560,20 @@ class InheritedJobTest < ActiveJob::TestCase assert_instance_of ActiveJob::QueueAdapters::TestAdapter, InheritedJob.queue_adapter end end + +class QueueAdapterJobTest < ActiveJob::TestCase + def before_setup + @original_autoload_paths = ActiveSupport::Dependencies.autoload_paths + ActiveSupport::Dependencies.autoload_paths = %w(test/jobs) + super + end + + def after_teardown + ActiveSupport::Dependencies.autoload_paths = @original_autoload_paths + super + end + + def test_queue_adapter_is_test_adapter + assert_instance_of ActiveJob::QueueAdapters::TestAdapter, QueueAdapterJob.queue_adapter + end +end diff --git a/activejob/test/jobs/queue_adapter_job.rb b/activejob/test/jobs/queue_adapter_job.rb new file mode 100644 index 0000000000..160dfd74ec --- /dev/null +++ b/activejob/test/jobs/queue_adapter_job.rb @@ -0,0 +1,3 @@ +class QueueAdapterJob < ActiveJob::Base + self.queue_adapter = :inline +end |