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