예제 #1
0
    def test_ready_signals_sent(self):
        self.in_signal = 0

        def handle_signal(sender, *args, **kwargs):
            self.in_signal += 1

        worker_ready.connect(handle_signal)
        WorkerGroup(self.channel_layer, n_threads=4)
        self.worker.ready()
        self.assertEqual(self.in_signal, 4)
예제 #2
0
def test_worker_group(channel_layer, n_threads, callback=None):
    """Setup test worker group and validate it's finished."""
    worker_group = WorkerGroup(
        channel_layer,
        n_threads=n_threads,
        signal_handlers=False,
        stop_gracefully=True,
        callback=callback,
    )
    worker_group_thread = threading.Thread(target=worker_group.run)
    worker_group_thread.daemon = True
    worker_group_thread.start()
    yield worker_group
    worker_group_thread.join()
    for worker_id, worker in enumerate(worker_group.workers):
        assert worker.in_job is False
        assert worker_group.threads[worker_id].is_alive() is False
예제 #3
0
 def setUp(self):
     self.channel_layer = channel_layers[DEFAULT_CHANNEL_LAYER]
     self.worker = WorkerGroup(self.channel_layer, n_threads=4)
     self.subworkers = self.worker.workers