mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Use descriptive exception names
This commit is contained in:
parent
a4fc7dc957
commit
08a92d47b0
2 changed files with 20 additions and 20 deletions
|
@ -7,41 +7,41 @@ class ExceptionsTest < ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
test "successfully retry job throwing exception against defaults" do
|
||||
RetryJob.perform_later 'SeriousError', 5
|
||||
RetryJob.perform_later 'DefaultsError', 5
|
||||
|
||||
assert_equal [
|
||||
"Raised SeriousError for the 1st time",
|
||||
"Raised SeriousError for the 2nd time",
|
||||
"Raised SeriousError for the 3rd time",
|
||||
"Raised SeriousError for the 4th time",
|
||||
"Raised DefaultsError for the 1st time",
|
||||
"Raised DefaultsError for the 2nd time",
|
||||
"Raised DefaultsError for the 3rd time",
|
||||
"Raised DefaultsError for the 4th time",
|
||||
"Successfully completed job" ], JobBuffer.values
|
||||
end
|
||||
|
||||
test "successfully retry job throwing exception against higher limit" do
|
||||
RetryJob.perform_later 'VerySeriousError', 9
|
||||
RetryJob.perform_later 'ShortWaitTenAttemptsError', 9
|
||||
assert_equal 9, JobBuffer.values.count
|
||||
end
|
||||
|
||||
test "failed retry job when exception kept occurring against defaults" do
|
||||
begin
|
||||
RetryJob.perform_later 'SeriousError', 6
|
||||
assert_equal "Raised SeriousError for the 5th time", JobBuffer.last_value
|
||||
rescue SeriousError
|
||||
RetryJob.perform_later 'DefaultsError', 6
|
||||
assert_equal "Raised DefaultsError for the 5th time", JobBuffer.last_value
|
||||
rescue DefaultsError
|
||||
pass
|
||||
end
|
||||
end
|
||||
|
||||
test "failed retry job when exception kept occurring against higher limit" do
|
||||
begin
|
||||
RetryJob.perform_later 'VerySeriousError', 11
|
||||
assert_equal "Raised VerySeriousError for the 10th time", JobBuffer.last_value
|
||||
rescue VerySeriousError
|
||||
RetryJob.perform_later 'ShortWaitTenAttemptsError', 11
|
||||
assert_equal "Raised ShortWaitTenAttemptsError for the 10th time", JobBuffer.last_value
|
||||
rescue ShortWaitTenAttemptsError
|
||||
pass
|
||||
end
|
||||
end
|
||||
|
||||
test "discard job" do
|
||||
RetryJob.perform_later 'NotSeriousError', 2
|
||||
assert_equal "Raised NotSeriousError for the 1st time", JobBuffer.last_value
|
||||
RetryJob.perform_later 'DiscardableError', 2
|
||||
assert_equal "Raised DiscardableError for the 1st time", JobBuffer.last_value
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
require_relative '../support/job_buffer'
|
||||
require 'active_support/core_ext/integer/inflections'
|
||||
|
||||
class SeriousError < StandardError; end
|
||||
class VerySeriousError < StandardError; end
|
||||
class NotSeriousError < StandardError; end
|
||||
class DefaultsError < StandardError; end
|
||||
class ShortWaitTenAttemptsError < StandardError; end
|
||||
class DiscardableError < StandardError; end
|
||||
|
||||
class RetryJob < ActiveJob::Base
|
||||
retry_on SeriousError
|
||||
retry_on VerySeriousError, wait: 1.second, attempts: 10
|
||||
discard_on NotSeriousError
|
||||
retry_on DefaultsError
|
||||
retry_on ShortWaitTenAttemptsError, wait: 1.second, attempts: 10
|
||||
discard_on DiscardableError
|
||||
|
||||
def perform(raising, attempts)
|
||||
if executions < attempts
|
||||
|
|
Loading…
Reference in a new issue