aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
diff options
context:
space:
mode:
authorkennyj <kennyj@gmail.com>2012-07-23 00:46:00 +0900
committerkennyj <kennyj@gmail.com>2012-07-23 00:46:00 +0900
commit8ca93c78832f4fdc78320e3f73ffd07bb71ce196 (patch)
treeef52c8b9496451ae92f53c0d6a6b9903a7df631c /activerecord/test/cases
parent1b2a7bad671cf39252dc539a673cd217a25235a8 (diff)
downloadrails-8ca93c78832f4fdc78320e3f73ffd07bb71ce196.tar.gz
rails-8ca93c78832f4fdc78320e3f73ffd07bb71ce196.tar.bz2
rails-8ca93c78832f4fdc78320e3f73ffd07bb71ce196.zip
Restore connection_id on error.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r--activerecord/test/cases/query_cache_test.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/test/cases/query_cache_test.rb b/activerecord/test/cases/query_cache_test.rb
index 83e207a260..2d778e9e90 100644
--- a/activerecord/test/cases/query_cache_test.rb
+++ b/activerecord/test/cases/query_cache_test.rb
@@ -39,6 +39,18 @@ class QueryCacheTest < ActiveRecord::TestCase
assert ActiveRecord::Base.connection.query_cache_enabled, 'cache on'
end
+ def test_exceptional_middleware_assigns_original_connection_id_on_error
+ connection_id = ActiveRecord::Base.connection_id
+
+ mw = ActiveRecord::QueryCache.new lambda { |env|
+ ActiveRecord::Base.connection_id = self.object_id
+ raise "lol borked"
+ }
+ assert_raises(RuntimeError) { mw.call({}) }
+
+ assert_equal connection_id, ActiveRecord::Base.connection_id
+ end
+
def test_middleware_delegates
called = false
mw = ActiveRecord::QueryCache.new lambda { |env|