def test_threadworker_do(mock): from papaye.tasks.devices import ThreadWorker, MultiThreadScheduler mock.return_value = None scheduler = MultiThreadScheduler() scheduler.add_task(time.sleep, 1) worker = ThreadWorker(id=1, scheduler=scheduler) assert scheduler.queue.qsize() == 1 worker.do() assert scheduler.queue.qsize() == 0 assert mock.call_count == 1
def test_threadworker_do_with_own_function(): from papaye.tasks.devices import ThreadWorker, MultiThreadScheduler def test_func(): pass scheduler = MultiThreadScheduler() scheduler.add_task(test_func) worker = ThreadWorker(id=1, scheduler=scheduler) assert scheduler.queue.qsize() == 1 worker.do() assert scheduler.queue.qsize() == 0
def test_threadworker_do_with_result(): from papaye.tasks.devices import ThreadWorker, MultiThreadScheduler scheduler = MultiThreadScheduler() worker = ThreadWorker(id=1, scheduler=scheduler) def test_func(value): return value scheduler.add_task(test_func, 42) assert scheduler.queue.qsize() == 1 worker.do() assert scheduler.queue.qsize() == 0 assert scheduler.results == {1: (1, 42)}
def test_threadworker_do_with_args_and_kwargs(): from papaye.tasks.devices import ThreadWorker, MultiThreadScheduler def test_func(*args, **kwargs): return args, kwargs scheduler = MultiThreadScheduler() scheduler.add_task(test_func, 'one', two='two') worker = ThreadWorker(id=1, scheduler=scheduler) assert scheduler.queue.qsize() == 1 worker.do() assert scheduler.queue.qsize() == 0 assert scheduler.results[1] == (1, (('one', ), {'two': 'two'}))
def test_threadworker_do_with_exception(): from papaye.tasks.devices import ThreadWorker, MultiThreadScheduler scheduler = MultiThreadScheduler() worker = ThreadWorker(id=1, scheduler=scheduler) def test_func(value): raise Exception() scheduler.add_task(test_func, 42) assert scheduler.queue.qsize() == 1 worker.do() assert scheduler.queue.qsize() == 0 assert 1 in scheduler.results assert isinstance(scheduler.results[1], tuple) assert scheduler.results[1][0] == 1 assert isinstance(scheduler.results[1][1], Exception)