Skip to content

Commit

Permalink
Fix deprecated method and testing (#153)
Browse files Browse the repository at this point in the history
* fix deprecated methods

* fix deprecated testing

* use snake case

* use zrange in Redis versions aware

* fix typo

* correct params of zrange

* revert config to support sidekiq < 7.x, correct versions checking, correct params for zrange
  • Loading branch information
leedrum authored Dec 28, 2023
1 parent 2b30cb1 commit 447ff21
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 12 deletions.
9 changes: 8 additions & 1 deletion lib/sidekiq/failures/sorted_entry.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,14 @@ def initialize(parent, score, item)

def retry_failure
Sidekiq.redis do |conn|
results = conn.zrangebyscore(Sidekiq::Failures::LIST_KEY, score, score)
# from Redis v6.2.0, zrangebyscore is deprecated and zrange with BYSCORE is used
# option byscore is available from redis-rb v4.6.0
results = if Gem::Version.new(conn.info["redis_version"].to_s) >= Gem::Version.new('6.2.0') &&
Gem.loaded_specs['redis'].version >= Gem::Version.new('4.6.0')
conn.zrange(Sidekiq::Failures::LIST_KEY, score.to_i, score.to_i, byscore: true)
else
conn.zrangebyscore(Sidekiq::Failures::LIST_KEY, score, score)
end
conn.zremrangebyscore(Sidekiq::Failures::LIST_KEY, score, score)
results.map do |message|
msg = Sidekiq.load_json(message)
Expand Down
4 changes: 2 additions & 2 deletions lib/sidekiq/failures/web_extension.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def safe_relative_time(time)
end

app.post "/failures/all/reset" do
Sidekiq::Failures.reset_failures
Sidekiq::Failures.reset_failure_count
redirect "#{root_path}failures"
end

Expand All @@ -86,7 +86,7 @@ def safe_relative_time(time)
app.post '/filter/failures' do
@failures = Sidekiq::Failures::FailureSet.new.scan("*#{params[:substr]}*")
@current_page = 1
@count = @total_size = @failures.count
@count = @total_size = @failures.count
render(:erb, File.read(File.join(view_path, "failures.erb")))
end
end
Expand Down
14 changes: 8 additions & 6 deletions test/middleware_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,16 @@ def new_provider

before do
$invokes = 0
@boss = MiniTest::Mock.new
@boss = Minitest::Mock.new
@provider = new_provider
@processor = @provider.new_processor(@boss)

Sidekiq.server_middleware {|chain| chain.add Sidekiq::Failures::Middleware }
Sidekiq.redis = REDIS
Sidekiq.redis { |c| c.flushdb }
Sidekiq.configure_server do |config|
config.server_middleware do |chain|
chain.add Sidekiq::Failures::Middleware
end
end
Sidekiq.redis(&:flushdb)
Sidekiq.instance_eval { @failures_default_mode = nil }
end

Expand Down Expand Up @@ -155,7 +158,6 @@ def perform(args)
assert_equal 1, $invokes
end


it "doesn't record failure if going to be retired again and configured to track exhaustion" do
msg = create_work('class' => MockWorker.to_s, 'args' => ['myarg'], 'retry' => true, 'failures' => 'exhausted')

Expand Down Expand Up @@ -234,7 +236,7 @@ def perform(args)
assert_equal 0, failures_count

3.times do
boss = MiniTest::Mock.new
boss = Minitest::Mock.new
processor = @provider.new_processor(boss)

assert_raises TestException do
Expand Down
2 changes: 1 addition & 1 deletion test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@

Sidekiq.logger.level = Logger::ERROR

REDIS = Sidekiq::RedisConnection.create(url: "redis://localhost/15")
REDIS = Sidekiq::RedisConnection.create(url: "redis://127.0.0.1:6379/0")
3 changes: 1 addition & 2 deletions test/web_extension_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ def app
before do
env 'rack.session', { csrf: TOKEN }
env 'HTTP_X_CSRF_TOKEN', TOKEN
Sidekiq.redis = REDIS
Sidekiq.redis {|c| c.flushdb }
Sidekiq.redis(&:flushdb)
end

it 'can display home with failures tab' do
Expand Down

0 comments on commit 447ff21

Please sign in to comment.