def tests_worker_should_handle_many_queues(self):
        queue1 = Queue(name='test', priority=1)
        queue2 = Queue(name='test', priority=2)
        worker = Worker('test')
        worker.update_keys()

        self.assertEqual(worker.keys, [queue2.waiting.key, queue1.waiting.key])
    def test_blpop_timeout(self):
        class TestWorker(Worker):
            def wait_for_job(self):
                result = super(TestWorker, self).wait_for_job()
                if result is None:
                    # force end to quit quickly
                    self.end_forced = True
                return result

        Queue.get_queue('test')

        # test specific methods
        worker = Worker(name='test', timeout=1)
        worker.update_keys()
        test_value = worker.wait_for_job()
        self.assertIsNone(test_value)

        # test whole run
        worker = TestWorker(name='test', timeout=1)
        worker.run()
        self.assertEqual(worker.num_loops, 0)