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)
def test_scheduler_add_task(): from papaye.tasks.devices import MultiThreadScheduler scheduler = MultiThreadScheduler() assert scheduler.queue.qsize() == 0 assert scheduler.status_history == {} scheduler.add_task(time.sleep, 1) assert scheduler.queue.qsize() == 1 assert len(scheduler.results) == 1 assert isinstance(scheduler.results, dict) assert scheduler.results[1] == {"status": 0, "result": None} assert len(scheduler.status_history) == 1 assert list(scheduler.status_history.keys()) == [1, ] assert isinstance(scheduler.status_history[1], list) assert isinstance(scheduler.status_history[1][0], tuple) assert len(scheduler.status_history[1][0]) == 2 assert scheduler.status_history[1][0][0] == 0 assert isinstance(scheduler.status_history[1][0][1], datetime.datetime)