aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@basecamp.com>2014-05-23 08:24:13 +0200
committerDavid Heinemeier Hansson <david@basecamp.com>2014-05-23 08:24:13 +0200
commit02202e6a446fe93459a4bf5ef747e0f69466819f (patch)
tree8411128ee93f36fd599932141bcc42950aeb32e6 /test
parent53948bf3a3628a96d5608653618d3770e5acc23b (diff)
parent0f8dc7e69cb602ebc2e7428dd4e3d815fdea60de (diff)
downloadrails-02202e6a446fe93459a4bf5ef747e0f69466819f.tar.gz
rails-02202e6a446fe93459a4bf5ef747e0f69466819f.tar.bz2
rails-02202e6a446fe93459a4bf5ef747e0f69466819f.zip
Merge pull request #62 from DouweM/patch-3
Don't swallow unhandled exceptions.
Diffstat (limited to 'test')
-rw-r--r--test/cases/rescue_test.rb9
-rw-r--r--test/jobs/rescue_job.rb13
2 files changed, 17 insertions, 5 deletions
diff --git a/test/cases/rescue_test.rb b/test/cases/rescue_test.rb
index a91ed01f45..aea8b036d4 100644
--- a/test/cases/rescue_test.rb
+++ b/test/cases/rescue_test.rb
@@ -11,6 +11,13 @@ class RescueTest < ActiveSupport::TestCase
test 'rescue perform exception with retry' do
job = RescueJob.new
job.execute("david")
- assert_equal [ "rescued from StandardError", "performed beautifully" ], $BUFFER
+ assert_equal [ "rescued from ArgumentError", "performed beautifully" ], $BUFFER
+ end
+
+ test 'let through unhandled perform exception' do
+ job = RescueJob.new
+ assert_raises(RescueJob::OtherError) do
+ job.execute("other")
+ end
end
end
diff --git a/test/jobs/rescue_job.rb b/test/jobs/rescue_job.rb
index 66b28d768e..acf2b81515 100644
--- a/test/jobs/rescue_job.rb
+++ b/test/jobs/rescue_job.rb
@@ -1,13 +1,18 @@
class RescueJob < ActiveJob::Base
- rescue_from(StandardError) do
- $BUFFER << "rescued from StandardError"
+ class OtherError < StandardError; end
+
+ rescue_from(ArgumentError) do
+ $BUFFER << "rescued from ArgumentError"
arguments[0] = "DIFFERENT!"
retry_now
end
def perform(person = "david")
- if person == "david"
- raise "Hair too good"
+ case person
+ when "david"
+ raise ArgumentError, "Hair too good"
+ when "other"
+ raise OtherError
else
$BUFFER << "performed beautifully"
end