correct erratically failing spec
This commit is contained in:
parent
d65570a8a1
commit
aeedecd27c
|
@ -99,7 +99,7 @@ class DiscourseRedis
|
||||||
@fallback_handler = DiscourseRedis::FallbackHandler.instance
|
@fallback_handler = DiscourseRedis::FallbackHandler.instance
|
||||||
end
|
end
|
||||||
|
|
||||||
def resolve
|
def resolve(client = nil)
|
||||||
if !@fallback_handler.master
|
if !@fallback_handler.master
|
||||||
@fallback_handler.verify_master unless @fallback_handler.running?
|
@fallback_handler.verify_master unless @fallback_handler.running?
|
||||||
return @slave_options
|
return @slave_options
|
||||||
|
@ -108,7 +108,7 @@ class DiscourseRedis
|
||||||
begin
|
begin
|
||||||
options = @options.dup
|
options = @options.dup
|
||||||
options.delete(:connector)
|
options.delete(:connector)
|
||||||
client = Redis::Client.new(options)
|
client ||= Redis::Client.new(options)
|
||||||
loading = client.call([:info]).split("\r\n").include?("loading:1")
|
loading = client.call([:info]).split("\r\n").include?("loading:1")
|
||||||
loading ? @slave_options : @options
|
loading ? @slave_options : @options
|
||||||
rescue Redis::ConnectionError, Redis::CannotConnectError, RuntimeError => ex
|
rescue Redis::ConnectionError, Redis::CannotConnectError, RuntimeError => ex
|
||||||
|
|
|
@ -116,12 +116,24 @@ describe DiscourseRedis do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class BrokenRedis
|
||||||
|
def initialize(error)
|
||||||
|
@error = error
|
||||||
|
end
|
||||||
|
|
||||||
|
def call(*args)
|
||||||
|
raise @error
|
||||||
|
end
|
||||||
|
|
||||||
|
def disconnect
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
it "should return the slave config when master's hostname cannot be resolved" do
|
it "should return the slave config when master's hostname cannot be resolved" do
|
||||||
begin
|
begin
|
||||||
error = RuntimeError.new('Name or service not known')
|
error = RuntimeError.new('Name or service not known')
|
||||||
|
|
||||||
Redis::Client.any_instance.expects(:call).raises(error).once
|
expect { connector.resolve(BrokenRedis.new(error)) }.to raise_error(error)
|
||||||
expect { connector.resolve }.to raise_error(error)
|
|
||||||
fallback_handler.instance_variable_get(:@timer_task).shutdown
|
fallback_handler.instance_variable_get(:@timer_task).shutdown
|
||||||
expect(fallback_handler.running?).to eq(false)
|
expect(fallback_handler.running?).to eq(false)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue