From bae1521c9a6765c330c27702f9f5a18e6fa7b8c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 15:36:48 +0000 Subject: [PATCH 1/2] Update redis requirement from ~> 4 to ~> 5 Updates the requirements on [redis](https://github.com/redis/redis-rb) to permit the latest version. - [Release notes](https://github.com/redis/redis-rb/releases) - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/redis-rb/compare/v4.0.0...v5.0.6) --- updated-dependencies: - dependency-name: redis dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- mail_room.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mail_room.gemspec b/mail_room.gemspec index 4ac00c5..904c14e 100644 --- a/mail_room.gemspec +++ b/mail_room.gemspec @@ -31,7 +31,7 @@ Gem::Specification.new do |gem| gem.add_development_dependency "faraday" gem.add_development_dependency "mail" gem.add_development_dependency "letter_opener" - gem.add_development_dependency "redis", "~> 4" + gem.add_development_dependency "redis", "~> 5" gem.add_development_dependency "redis-namespace" gem.add_development_dependency "pg" gem.add_development_dependency "charlock_holmes" From 80d2347a1e1dabc9637cea68bd643783d867831d Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Mon, 3 Jun 2024 12:08:56 -0700 Subject: [PATCH 2/2] Fix Redis tests to pass with redis v5 gem The redis v5 gem now depends on a new redis-client gem, which changes the internal client significantly. Update the tests with redis-client changes. --- spec/lib/arbitration/redis_spec.rb | 13 +++++++------ spec/lib/delivery/sidekiq_spec.rb | 21 +++++++++++---------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/spec/lib/arbitration/redis_spec.rb b/spec/lib/arbitration/redis_spec.rb index a191993..d228e6f 100644 --- a/spec/lib/arbitration/redis_spec.rb +++ b/spec/lib/arbitration/redis_spec.rb @@ -96,7 +96,7 @@ it 'client has same specified url' do subject.deliver?(123) - expect(raw_client.options[:url]).to eq redis_url + expect(raw_client.config.server_url).to eq redis_url end it 'client is a instance of Redis class' do @@ -135,13 +135,14 @@ ) } - before { ::Redis::Client::Connector::Sentinel.any_instance.stubs(:resolve).returns(sentinels) } + before { ::RedisClient::SentinelConfig.any_instance.stubs(:resolve_master).returns(RedisClient::Config.new(**sentinels.first)) } it 'client has same specified sentinel params' do - expect(raw_client.instance_variable_get(:@connector)).to be_a Redis::Client::Connector::Sentinel - expect(raw_client.options[:host]).to eq('sentinel-master') - expect(raw_client.options[:password]).to eq('mypassword') - expect(raw_client.options[:sentinels]).to eq(sentinels) + expect(raw_client.config).to be_a RedisClient::SentinelConfig + expect(raw_client.config.name).to eq('sentinel-master') + expect(raw_client.config.host).to eq('10.0.0.1') + expect(raw_client.config.password).to eq('mypassword') + expect(raw_client.config.sentinels.map(&:server_url)).to eq(["redis://10.0.0.1:26379"]) end end end diff --git a/spec/lib/delivery/sidekiq_spec.rb b/spec/lib/delivery/sidekiq_spec.rb index 440b3fe..6552912 100644 --- a/spec/lib/delivery/sidekiq_spec.rb +++ b/spec/lib/delivery/sidekiq_spec.rb @@ -8,7 +8,7 @@ let(:options) { MailRoom::Delivery::Sidekiq::Options.new(mailbox) } describe '#options' do - let(:redis_url) { 'redis://localhost' } + let(:redis_url) { 'redis://localhost:6379' } let(:redis_options) { { redis_url: redis_url } } context 'when only redis_url is specified' do @@ -21,7 +21,7 @@ context 'with simple redis url' do it 'client has same specified redis_url' do - expect(raw_client.options[:url]).to eq(redis_url) + expect(raw_client.config.server_url).to eq(redis_url) end it 'client is a instance of RedisNamespace class' do @@ -40,12 +40,12 @@ end it 'client has correct redis_url' do - expect(raw_client.options[:url]).to eq(redis_url) + expect(raw_client.config.server_url).to eq("#{redis_url}/4") end it 'connection has correct values' do - expect(redis.connection[:host]).to eq('localhost') - expect(redis.connection[:db]).to eq(4) + expect(raw_client.config.host).to eq('localhost') + expect(raw_client.config.db).to eq(4) end end end @@ -84,13 +84,14 @@ ) } - before { ::Redis::Client::Connector::Sentinel.any_instance.stubs(:resolve).returns(sentinels) } + before { ::RedisClient::SentinelConfig.any_instance.stubs(:resolve_master).returns(RedisClient::Config.new(**sentinels.first)) } it 'client has same specified sentinel params' do - expect(raw_client.instance_variable_get(:@connector)).to be_a Redis::Client::Connector::Sentinel - expect(raw_client.options[:host]).to eq('sentinel-master') - expect(raw_client.options[:password]).to eq('mypassword') - expect(raw_client.options[:sentinels]).to eq(sentinels) + expect(raw_client.config).to be_a RedisClient::SentinelConfig + expect(raw_client.config.host).to eq('10.0.0.1') + expect(raw_client.config.name).to eq('sentinel-master') + expect(raw_client.config.password).to eq('mypassword') + expect(raw_client.config.sentinels.map(&:server_url)).to eq(["redis://10.0.0.1:26379"]) end end