Packages
exq
0.2.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.2
Exq is a job processing library compatible with Resque / Sidekiq for the Elixir language.
Current section
Files
Jump to
Current section
Files
test/test_helper.exs
defmodule TestStats do
def processed_count(redis, namespace) do
count = Exq.Redis.get!(redis, Exq.RedisQueue.full_key(namespace, "stat:processed"))
{:ok, count}
end
def failed_count(redis, namespace) do
count = Exq.Redis.get!(redis, Exq.RedisQueue.full_key(namespace, "stat:failed"))
{:ok, count}
end
end
defmodule ExqTestUtil do
@timeout 20
@long_timeout 100
import ExUnit.Assertions
defmodule SendWorker do
def perform(pid) do
send String.to_atom(pid), {:worked}
end
end
def assert_exq_up(exq) do
my_pid = String.to_atom(UUID.uuid4)
Process.register(self, my_pid)
{:ok, _} = Exq.enqueue(exq, "default", "ExqTestUtil.SendWorker", [my_pid])
wait_long
ExUnit.Assertions.assert_received {:worked}
Process.unregister(my_pid)
end
def stop_process(pid) do
try do
Process.exit(pid, :shutdown)
rescue
e in RuntimeError -> e
end
end
def wait do
:timer.sleep(@timeout)
end
def wait_long do
:timer.sleep(@long_timeout)
end
end
defmodule TestRedis do
#TODO: Automate config
def start do
[] = :os.cmd('redis-server test/test-redis.conf')
:timer.sleep(100)
end
def stop do
[] = :os.cmd('redis-cli -p 6555 shutdown')
end
def setup do
start
{:ok, redis} = :eredis.start_link('127.0.0.1', 6555)
Process.register(redis, :testredis)
:ok
end
def flush_all do
Exq.Redis.flushdb! :testredis
end
def teardown do
if !Process.whereis(:testredis) do
# For some reason at the end of test the link is down, before we acutally stop and unregister?
{:ok, redis} = :eredis.start_link('127.0.0.1', 6555)
Process.register(redis, :testredis)
end
flush_all
stop
Process.unregister(:testredis)
:ok
end
end
# Don't run parallel tests to prevent redis issues
ExUnit.configure(seed: 0, max_cases: 1)
# Start logger
:application.start(:logger)
ExUnit.start