2012-02-15 20:55:06 +00:00
|
|
|
"""
|
|
|
|
This file contains all jobs that are used in tests. Each of these test
|
|
|
|
fixtures has a slighty different characteristics.
|
|
|
|
"""
|
2012-02-22 17:01:14 +00:00
|
|
|
import time
|
2012-02-15 20:55:06 +00:00
|
|
|
|
2012-07-23 06:25:31 +00:00
|
|
|
from rq.decorators import job
|
|
|
|
|
2012-02-22 16:39:14 +00:00
|
|
|
|
2012-02-15 20:55:06 +00:00
|
|
|
def say_hello(name=None):
|
|
|
|
"""A job with a single argument and a return value."""
|
|
|
|
if name is None:
|
|
|
|
name = 'Stranger'
|
|
|
|
return 'Hi there, %s!' % (name,)
|
|
|
|
|
2012-02-22 16:39:14 +00:00
|
|
|
|
2012-02-15 20:55:06 +00:00
|
|
|
def do_nothing():
|
|
|
|
"""The best job in the world."""
|
|
|
|
pass
|
|
|
|
|
2012-02-22 16:39:14 +00:00
|
|
|
|
2012-02-15 20:55:06 +00:00
|
|
|
def div_by_zero(x):
|
|
|
|
"""Prepare for a division-by-zero exception."""
|
|
|
|
return x / 0
|
|
|
|
|
2012-02-22 16:39:14 +00:00
|
|
|
|
2012-02-15 20:55:06 +00:00
|
|
|
def some_calculation(x, y, z=1):
|
|
|
|
"""Some arbitrary calculation with three numbers. Choose z smartly if you
|
|
|
|
want a division by zero exception.
|
|
|
|
"""
|
|
|
|
return x * y / z
|
|
|
|
|
2012-02-22 16:39:14 +00:00
|
|
|
|
2012-02-15 20:55:06 +00:00
|
|
|
def create_file(path):
|
|
|
|
"""Creates a file at the given path. Actually, leaves evidence that the
|
|
|
|
job ran."""
|
|
|
|
with open(path, 'w') as f:
|
|
|
|
f.write('Just a sentinel.')
|
2012-02-22 17:01:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
def create_file_after_timeout(path, timeout):
|
|
|
|
time.sleep(timeout)
|
|
|
|
create_file(path)
|
2012-07-17 10:48:41 +00:00
|
|
|
|
|
|
|
|
|
|
|
class Calculator(object):
|
|
|
|
"""Test instance methods."""
|
|
|
|
def __init__(self, denominator):
|
|
|
|
self.denominator = denominator
|
|
|
|
|
|
|
|
def calculate(x, y):
|
|
|
|
return x * y / self.denominator
|
2012-07-23 06:25:31 +00:00
|
|
|
|
|
|
|
@job()
|
|
|
|
def decorated_job(x, y):
|
|
|
|
return x + y
|