Sha256: 786711c243c736985b7d60b04474923066a62db9c0060fb35afec6220da70240

Contents?: true

Size: 1.39 KB

Versions: 4

Compression:

Stored size: 1.39 KB

Contents

require 'minitest'
require "minitest/autorun"
require 'pry'
require 'mocha'
require "minitest/unit"
require "mocha/mini_test"
$:.unshift(".")
require 'resque_stuck_queue'
require File.join(File.expand_path(File.dirname(__FILE__)), "resque", "set_redis_key")

module TestHelper

  extend self

  def run_resque(queue_name = "*")
    pid = fork { exec("export INTERVAL=1 QUEUE=#{queue_name}; bundle exec rake --trace resque:work") }
    sleep 3 # wait for resque to boot up
    pid
  end

  def with_no_resque_failures(&blk)
    Resque::Failure.clear
    blk.call
    assert_nil Resque::Failure.all, "Resque hearbeat job cant fail: #{Resque::Failure.all.inspect}"
  end

  def hax_kill_resque
    # ugly, FIXME how to get pid of forked forked process. run_resque pid is incorrect.
   `ps aux |grep resque | grep -v stuck_queue |awk '{print $2}' |xargs kill`
   sleep 2 # wait for shutdown
  end

  def start_and_stop_loops_after(secs)
    ops = []
    ops << Thread.new { Resque::StuckQueue.start }
    ops << Thread.new { sleep secs; Resque::StuckQueue.stop }
    ops.map(&:join)
  end

end

# http://stackoverflow.com/questions/9346101/how-to-get-stack-trace-from-a-testunittestcase
def MiniTest.filter_backtrace(bt)
  bt
end

# hax ensure previous test runs that raised didn't leave a resque process runing beforehand
unless @before_all_hax_kill_resque
  TestHelper.hax_kill_resque && @before_all_hax_kill_resque=true
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
resque_stuck_queue-0.4.3 test/test_helper.rb
resque_stuck_queue-0.4.2 test/test_helper.rb
resque_stuck_queue-0.3.9 test/test_helper.rb
resque_stuck_queue-0.3.8 test/test_helper.rb