Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
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)}
Beispiel #4
0
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'}))
Beispiel #5
0
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)