Merge pull request #7292 from stevecj/fix-psql-reconnect-after-simulated-disconnect-test
Fix just-plain-wrongness of psql auto-reconnect test.
This commit is contained in:
commit
c0954a4802
@ -85,16 +85,17 @@ def test_reconnection_after_simulated_disconnection_with_verify
|
|||||||
assert @connection.active?
|
assert @connection.active?
|
||||||
original_connection_pid = @connection.query('select pg_backend_pid()')
|
original_connection_pid = @connection.query('select pg_backend_pid()')
|
||||||
|
|
||||||
# Fail with bad connection after next query attempt.
|
# Fail with bad connection on next query attempt.
|
||||||
connection_class = class << @connection ; self ; end
|
raw_connection = @connection.raw_connection
|
||||||
connection_class.class_eval <<-CODE
|
raw_connection_class = class << raw_connection ; self ; end
|
||||||
|
raw_connection_class.class_eval <<-CODE, __FILE__, __LINE__ + 1
|
||||||
def query_fake(*args)
|
def query_fake(*args)
|
||||||
if @called ||= false
|
if !( @called ||= false )
|
||||||
@connection.stubs(:status).returns(PCconn::CONNECTION_BAD)
|
self.stubs(:status).returns(PGconn::CONNECTION_BAD)
|
||||||
raise PGError
|
raise PGError
|
||||||
else
|
else
|
||||||
@called = true
|
@called = true
|
||||||
@connection.unstub(:status)
|
self.unstub(:status)
|
||||||
query_unfake(*args)
|
query_unfake(*args)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -107,13 +108,13 @@ def query_fake(*args)
|
|||||||
@connection.verify!
|
@connection.verify!
|
||||||
new_connection_pid = @connection.query('select pg_backend_pid()')
|
new_connection_pid = @connection.query('select pg_backend_pid()')
|
||||||
ensure
|
ensure
|
||||||
connection_class.class_eval <<-CODE
|
raw_connection_class.class_eval <<-CODE
|
||||||
alias query query_unfake
|
alias query query_unfake
|
||||||
undef query_fake
|
undef query_fake
|
||||||
CODE
|
CODE
|
||||||
end
|
end
|
||||||
|
|
||||||
assert_equal original_connection_pid, new_connection_pid, "Should have a new underlying connection pid"
|
assert_not_equal original_connection_pid, new_connection_pid, "Should have a new underlying connection pid"
|
||||||
end
|
end
|
||||||
|
|
||||||
# Must have with_manual_interventions set to true for this
|
# Must have with_manual_interventions set to true for this
|
||||||
|
Loading…
Reference in New Issue
Block a user