提交 c7b7c6ad 编写于 作者: A Aaron Patterson

make sure that active connections are not cleared during test when an exception happens

上级 3b2a0326
......@@ -443,11 +443,13 @@ def initialize(app)
end
def call(env)
testing = env.key?('rack.test')
status, headers, body = @app.call(env)
[status, headers, Proxy.new(body, env.key?('rack.test'))]
[status, headers, Proxy.new(body, testing)]
rescue
ActiveRecord::Base.clear_active_connections!
ActiveRecord::Base.clear_active_connections! unless testing
raise
end
end
......
......@@ -64,6 +64,14 @@ def test_connections_closed_if_exception
assert !ActiveRecord::Base.connection_handler.active_connections?
end
def test_connections_not_closed_if_exception_and_test
@env['rack.test'] = true
app = Class.new(App) { def call(env); raise; end }.new
explosive = ConnectionManagement.new(app)
assert_raises(RuntimeError) { 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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册