diff options
author | Simon Eskildsen <sirup@sirupsen.com> | 2014-09-23 02:26:54 +0000 |
---|---|---|
committer | Simon Eskildsen <sirup@sirupsen.com> | 2014-09-23 02:33:18 +0000 |
commit | cb598c211579a4a763f2ad2376bc99f85a44dd13 (patch) | |
tree | a57f92e469f1085b351d31f311b36a2b6ba3dc63 /activerecord/test/cases | |
parent | fc6accfa9ad8f2a9871c574a6d739388eea2a8f9 (diff) | |
download | rails-cb598c211579a4a763f2ad2376bc99f85a44dd13.tar.gz rails-cb598c211579a4a763f2ad2376bc99f85a44dd13.tar.bz2 rails-cb598c211579a4a763f2ad2376bc99f85a44dd13.zip |
ar/connection_pool: honor overriden rack.test in middleware
Honoring an overidden `rack.test` allows testing closed connection between
multiple requests. This is useful if you're working on database resiliency, to
ensure the connection is in the expected state from one request to another on
the same worker.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/connection_management_test.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/test/cases/connection_management_test.rb b/activerecord/test/cases/connection_management_test.rb index 77d9ae9b8e..f53c496ecd 100644 --- a/activerecord/test/cases/connection_management_test.rb +++ b/activerecord/test/cases/connection_management_test.rb @@ -96,6 +96,14 @@ module ActiveRecord assert ActiveRecord::Base.connection_handler.active_connections? end + def test_connections_closed_if_exception_and_explicitly_not_test + @env['rack.test'] = false + app = Class.new(App) { def call(env); raise NotImplementedError; end }.new + explosive = ConnectionManagement.new(app) + assert_raises(NotImplementedError) { explosive.call(@env) } + assert !ActiveRecord::Base.connection_handler.active_connections? + end + test "doesn't clear active connections when running in a test case" do @env['rack.test'] = true @management.call(@env) |