mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Merge pull request #2897 from rsutphin/ar31-remove_connection
Patch for issue #2820
This commit is contained in:
@@ -421,7 +421,7 @@ module ActiveRecord
|
||||
# can be used as an argument for establish_connection, for easily
|
||||
# re-establishing the connection.
|
||||
def remove_connection(klass)
|
||||
pool = @connection_pools[klass.name]
|
||||
pool = @connection_pools.delete(klass.name)
|
||||
return nil unless pool
|
||||
|
||||
pool.automatic_reconnect = false
|
||||
|
||||
@@ -126,7 +126,7 @@ module ActiveRecord
|
||||
end
|
||||
|
||||
def connection_pool
|
||||
connection_handler.retrieve_connection_pool(self)
|
||||
connection_handler.retrieve_connection_pool(self) or raise ConnectionNotEstablished
|
||||
end
|
||||
|
||||
def retrieve_connection
|
||||
|
||||
@@ -6,7 +6,12 @@ module ActiveRecord
|
||||
def setup
|
||||
@handler = ConnectionHandler.new
|
||||
@handler.establish_connection 'america', Base.connection_pool.spec
|
||||
@klass = Struct.new(:name).new('america')
|
||||
@klass = Class.new do
|
||||
def self.name; 'america'; end
|
||||
end
|
||||
@subklass = Class.new(@klass) do
|
||||
def self.name; 'north america'; end
|
||||
end
|
||||
end
|
||||
|
||||
def test_retrieve_connection
|
||||
@@ -28,6 +33,20 @@ module ActiveRecord
|
||||
def test_retrieve_connection_pool
|
||||
assert_not_nil @handler.retrieve_connection_pool(@klass)
|
||||
end
|
||||
|
||||
def test_retrieve_connection_pool_uses_superclass_when_no_subclass_connection
|
||||
assert_not_nil @handler.retrieve_connection_pool(@subklass)
|
||||
end
|
||||
|
||||
def test_retrieve_connection_pool_uses_superclass_pool_after_subclass_establish_and_remove
|
||||
@handler.establish_connection 'north america', Base.connection_pool.spec
|
||||
assert_not_same @handler.retrieve_connection_pool(@klass),
|
||||
@handler.retrieve_connection_pool(@subklass)
|
||||
|
||||
@handler.remove_connection @subklass
|
||||
assert_same @handler.retrieve_connection_pool(@klass),
|
||||
@handler.retrieve_connection_pool(@subklass)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user