mirror of https://github.com/peter4431/rq.git
				
				
				
			Broke down tests into multiple files.
							parent
							
								
									210477c2ab
								
							
						
					
					
						commit
						1f64157c38
					
				| @ -0,0 +1,62 @@ | |||||||
|  | import unittest | ||||||
|  | from pickle import loads | ||||||
|  | from redis import Redis | ||||||
|  | from logbook import NullHandler | ||||||
|  | from rq import conn | ||||||
|  | 
 | ||||||
|  | # Test data | ||||||
|  | def testjob(name=None): | ||||||
|  |     if name is None: | ||||||
|  |         name = 'Stranger' | ||||||
|  |     return 'Hi there, %s!' % (name,) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class RQTestCase(unittest.TestCase): | ||||||
|  |     """Base class to inherit test cases from for RQ. | ||||||
|  | 
 | ||||||
|  |     It sets up the Redis connection (available via self.testconn), turns off | ||||||
|  |     logging to the terminal and flushes the Redis database before and after | ||||||
|  |     running each test. | ||||||
|  | 
 | ||||||
|  |     Also offers assertQueueContains(queue, that_func) assertion method. | ||||||
|  |     """ | ||||||
|  | 
 | ||||||
|  |     @classmethod | ||||||
|  |     def setUpClass(cls): | ||||||
|  |         # Set up connection to Redis | ||||||
|  |         testconn = Redis() | ||||||
|  |         conn.push(testconn) | ||||||
|  | 
 | ||||||
|  |         # Store the connection (for sanity checking) | ||||||
|  |         cls.testconn = testconn | ||||||
|  | 
 | ||||||
|  |         # Shut up logbook | ||||||
|  |         cls.log_handler = NullHandler() | ||||||
|  |         cls.log_handler.push_thread() | ||||||
|  | 
 | ||||||
|  |     def setUp(self): | ||||||
|  |         # Flush beforewards (we like our hygiene) | ||||||
|  |         conn.flushdb() | ||||||
|  | 
 | ||||||
|  |     def tearDown(self): | ||||||
|  |         # Flush afterwards | ||||||
|  |         conn.flushdb() | ||||||
|  | 
 | ||||||
|  |     @classmethod | ||||||
|  |     def tearDownClass(cls): | ||||||
|  |         cls.log_handler.pop_thread() | ||||||
|  | 
 | ||||||
|  |         # Pop the connection to Redis | ||||||
|  |         testconn = conn.pop() | ||||||
|  |         assert testconn == cls.testconn, 'Wow, something really nasty happened to the Redis connection stack. Check your setup.' | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     def assertQueueContains(self, queue, that_func): | ||||||
|  |         # Do a queue scan (this is O(n), but we're in a test, so hey) | ||||||
|  |         for message in queue.messages: | ||||||
|  |             f, _, args, kwargs = loads(message) | ||||||
|  |             if f == that_func: | ||||||
|  |                 return | ||||||
|  |         self.fail('Queue %s does not contain message for function %s' % | ||||||
|  |                 (queue.key, that_func)) | ||||||
|  | 
 | ||||||
| @ -0,0 +1,11 @@ | |||||||
|  | from tests import RQTestCase | ||||||
|  | #from pickle import loads, dumps | ||||||
|  | #from rq import Queue, Worker | ||||||
|  | #from rq.exceptions import DequeueError | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class TestJob(RQTestCase): | ||||||
|  |     def test_create_job(self): | ||||||
|  |         """Creation of jobs.""" | ||||||
|  |         pass | ||||||
|  | 
 | ||||||
| @ -0,0 +1,22 @@ | |||||||
|  | from tests import RQTestCase | ||||||
|  | from tests import testjob | ||||||
|  | from rq import Queue, Worker | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class TestWorker(RQTestCase): | ||||||
|  |     def test_create_worker(self): | ||||||
|  |         """Worker creation.""" | ||||||
|  |         fooq, barq = Queue('foo'), Queue('bar') | ||||||
|  |         w = Worker([fooq, barq]) | ||||||
|  |         self.assertEquals(w.queues, [fooq, barq]) | ||||||
|  | 
 | ||||||
|  |     def test_work_and_quit(self): | ||||||
|  |         """Worker processes work, then quits.""" | ||||||
|  |         fooq, barq = Queue('foo'), Queue('bar') | ||||||
|  |         w = Worker([fooq, barq]) | ||||||
|  |         self.assertEquals(w.work(burst=True), False, 'Did not expect any work on the queue.') | ||||||
|  | 
 | ||||||
|  |         fooq.enqueue(testjob, name='Frank') | ||||||
|  |         self.assertEquals(w.work(burst=True), True, 'Expected at least some work done.') | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
					Loading…
					
					
				
		Reference in New Issue