mirror of https://github.com/peter4431/rq.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
11 years ago
|
# -*- coding: utf-8 -*-
|
||
|
from __future__ import absolute_import
|
||
|
|
||
|
from rq.job import Job
|
||
|
from rq.utils import current_timestamp
|
||
|
from rq.working_queue import WorkingQueue
|
||
|
|
||
|
from tests import RQTestCase
|
||
|
|
||
|
|
||
|
class TestQueue(RQTestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
super(TestQueue, self).setUp()
|
||
|
self.working_queue = WorkingQueue('default', connection=self.testconn)
|
||
|
|
||
|
def test_add_and_remove(self):
|
||
|
"""Adding and removing job to WorkingQueue."""
|
||
|
timestamp = current_timestamp()
|
||
|
job = Job()
|
||
|
|
||
|
# Test that job is added with the right score
|
||
|
self.working_queue.add(job, 1000)
|
||
|
self.assertLess(self.testconn.zscore(self.working_queue.key, job.id),
|
||
|
timestamp + 1001)
|
||
|
|
||
|
# Ensure that job is properly removed from sorted set
|
||
|
self.working_queue.remove(job)
|
||
|
self.assertIsNone(self.testconn.zscore(self.working_queue.key, job.id))
|
||
|
|
||
|
def test_get_job_ids(self):
|
||
|
"""Getting job ids from WorkingQueue."""
|
||
|
self.testconn.zadd(self.working_queue.key, 1, 'foo')
|
||
|
self.testconn.zadd(self.working_queue.key, 10, 'bar')
|
||
|
self.assertEqual(self.working_queue.get_job_ids(), ['foo', 'bar'])
|
||
|
|
||
|
def test_get_expired_job_ids(self):
|
||
|
"""Getting expired job ids form WorkingQueue."""
|
||
|
timestamp = current_timestamp()
|
||
|
|
||
|
self.testconn.zadd(self.working_queue.key, 1, 'foo')
|
||
|
self.testconn.zadd(self.working_queue.key, timestamp + 10, 'bar')
|
||
|
|
||
|
self.assertEqual(self.working_queue.get_expired_job_ids(), ['foo'])
|