提交 9e486905 编写于 作者: S Sean Griffin

Merge pull request #22380 from wjessop/fix_race_in_aj_integration_tests

Fix race condition testing for job execution order
......@@ -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
......
......@@ -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
......
......@@ -42,15 +42,23 @@ def wait_for_jobs_to_finish_for(seconds=60)
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册