aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/adapter_test.rb
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2017-07-09 04:14:48 +0930
committerGitHub <noreply@github.com>2017-07-09 04:14:48 +0930
commite5bcc7b53cb87643e8cdbf000fea0a03bfcd34f6 (patch)
tree84809d2b8d6edc196037aae2dcdc57125b0c5f65 /activerecord/test/cases/adapter_test.rb
parent40a20ded015c92c875c8e96c1687c96303ced7f8 (diff)
parent8219e177633e3c3a77a50c2342b8fe6c4956914b (diff)
downloadrails-e5bcc7b53cb87643e8cdbf000fea0a03bfcd34f6.tar.gz
rails-e5bcc7b53cb87643e8cdbf000fea0a03bfcd34f6.tar.bz2
rails-e5bcc7b53cb87643e8cdbf000fea0a03bfcd34f6.zip
Merge pull request #29692 from fimmtiu/avoid-translating-non-database-exceptions
Don't translate non-database exceptions.
Diffstat (limited to 'activerecord/test/cases/adapter_test.rb')
-rw-r--r--activerecord/test/cases/adapter_test.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/activerecord/test/cases/adapter_test.rb b/activerecord/test/cases/adapter_test.rb
index a1fb6427f9..827bcba121 100644
--- a/activerecord/test/cases/adapter_test.rb
+++ b/activerecord/test/cases/adapter_test.rb
@@ -211,6 +211,28 @@ module ActiveRecord
end
end
+ def test_exceptions_from_notifications_are_not_translated
+ original_error = StandardError.new("This StandardError shouldn't get translated")
+ subscriber = ActiveSupport::Notifications.subscribe("sql.active_record") { raise original_error }
+ actual_error = assert_raises(StandardError) do
+ @connection.execute("SELECT * FROM posts")
+ end
+
+ assert_equal original_error, actual_error
+
+ ensure
+ ActiveSupport::Notifications.unsubscribe(subscriber) if subscriber
+ end
+
+ def test_database_related_exceptions_are_translated_to_statement_invalid
+ error = assert_raises(ActiveRecord::StatementInvalid) do
+ @connection.execute("This is a syntax error")
+ end
+
+ assert_instance_of ActiveRecord::StatementInvalid, error
+ assert_kind_of Exception, error.cause
+ end
+
def test_select_all_always_return_activerecord_result
result = @connection.select_all "SELECT * FROM posts"
assert result.is_a?(ActiveRecord::Result)