1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00

Refactor & add tests for determine_redis_provider

This commit is contained in:
jc00ke 2012-10-14 16:07:37 -07:00
parent 36bb71883a
commit 619176f92d
2 changed files with 50 additions and 7 deletions

View file

@ -1,4 +1,4 @@
require 'connection_pool'
hequire 'connection_pool'
require 'redis'
require 'redis/namespace'
@ -25,14 +25,11 @@ module Sidekiq
end
private_class_method :build_client
# Not public
def self.determine_redis_provider
provider = if ENV.has_key? 'REDISTOGO_URL'
'REDISTOGO_URL'
else
ENV['REDIS_PROVIDER'] || 'REDIS_URL'
end
return ENV['REDISTOGO_URL'] if ENV['REDISTOGO_URL']
provider = ENV['REDIS_PROVIDER'] || 'REDIS_URL'
ENV[provider]
end
private_class_method :determine_redis_provider
end
end

View file

@ -0,0 +1,46 @@
require 'helper'
require 'sidekiq/redis_connection'
class TestRedisConnection < MiniTest::Unit::TestCase
describe ".create" do
def with_env_var(var, uri, skip_provider=false)
vars = ['REDISTOGO_URL', 'REDIS_PROVIDER', 'REDIS_URL'] - [var]
vars.each do |v|
next if skip_provider
ENV[v] = nil
end
ENV[var] = uri
assert_equal uri, Sidekiq::RedisConnection.determine_redis_provider
ENV[var] = nil
end
describe "with REDISTOGO_URL set" do
it "sets connection URI to RedisToGo" do
with_env_var 'REDISTOGO_URL', 'redis://redis-to-go:6379/0'
end
end
describe "with REDIS_PROVIDER set" do
it "sets connection URI to the provider" do
uri = 'redis://sidekiq-redis-provider:6379/0'
provider = 'SIDEKIQ_REDIS_PROVIDER'
ENV['REDIS_PROVIDER'] = provider
ENV[provider] = uri
with_env_var provider, uri, true
ENV[provider] = nil
end
end
describe "with REDIS_URL set" do
it "sets connection URI to custom uri" do
with_env_var 'REDIS_URL', 'redis://redis-uri:6379/0'
end
end
end
end