diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2015-11-23 08:06:33 -0700 |
---|---|---|
committer | Sean Griffin <sean@seantheprogrammer.com> | 2015-11-23 08:06:33 -0700 |
commit | 9e486905815e711e8d291da3e15f883e55249668 (patch) | |
tree | feeb8e7d8bca174f9a8a35a7e8d2877a470ab531 | |
parent | 4547e894e9f924221f1ec4ff8e71fa750bab3595 (diff) | |
parent | 171e788ccd508caad5389edfe04e304a0da344a1 (diff) | |
download | rails-9e486905815e711e8d291da3e15f883e55249668.tar.gz rails-9e486905815e711e8d291da3e15f883e55249668.tar.bz2 rails-9e486905815e711e8d291da3e15f883e55249668.zip |
Merge pull request #22380 from wjessop/fix_race_in_aj_integration_tests
Fix race condition testing for job execution order
-rw-r--r-- | activejob/test/integration/queuing_test.rb | 2 | ||||
-rw-r--r-- | activejob/test/support/integration/dummy_app_template.rb | 7 | ||||
-rw-r--r-- | activejob/test/support/integration/test_case_helpers.rb | 16 |
3 files changed, 18 insertions, 7 deletions
diff --git a/activejob/test/integration/queuing_test.rb b/activejob/test/integration/queuing_test.rb index e435ed4aa6..d8425c9706 100644 --- a/activejob/test/integration/queuing_test.rb +++ b/activejob/test/integration/queuing_test.rb @@ -78,7 +78,7 @@ class QueuingTest < ActiveSupport::TestCase TestJob.perform_later @id wait_for_jobs_to_finish_for(5.seconds) assert job_executed - assert_equal 'de', job_output + assert_equal 'de', job_executed_in_locale ensure I18n.available_locales = [:en] I18n.locale = :en diff --git a/activejob/test/support/integration/dummy_app_template.rb b/activejob/test/support/integration/dummy_app_template.rb index 0c062a025e..262ca72327 100644 --- a/activejob/test/support/integration/dummy_app_template.rb +++ b/activejob/test/support/integration/dummy_app_template.rb @@ -18,8 +18,11 @@ class TestJob < ActiveJob::Base queue_as :integration_tests def perform(x) - File.open(Rails.root.join("tmp/\#{x}"), "w+") do |f| - f.write I18n.locale + File.open(Rails.root.join("tmp/\#{x}"), "wb+") do |f| + f.write Marshal.dump({ + "locale" => I18n.locale.to_s || "en", + "executed_at" => Time.now.to_r + }) end end end diff --git a/activejob/test/support/integration/test_case_helpers.rb b/activejob/test/support/integration/test_case_helpers.rb index 8319d09520..9897f76fd0 100644 --- a/activejob/test/support/integration/test_case_helpers.rb +++ b/activejob/test/support/integration/test_case_helpers.rb @@ -42,15 +42,23 @@ module TestCaseHelpers end end + def job_file(id) + Dummy::Application.root.join("tmp/#{id}") + end + def job_executed(id=@id) - Dummy::Application.root.join("tmp/#{id}").exist? + job_file(id).exist? + end + + def job_data(id) + Marshal.load(File.binread(job_file(id))) end def job_executed_at(id=@id) - File.new(Dummy::Application.root.join("tmp/#{id}")).ctime + job_data(id)["executed_at"] end - def job_output - File.read Dummy::Application.root.join("tmp/#{@id}") + def job_executed_in_locale(id=@id) + job_data(id)["locale"] end end |