diff --git a/tests/test_idle.py b/tests/test_idle.py index fdee73ac7ab3ab93a02110587b6f397524df4767..e6615319eaaefcf28b7309a56570f70f8873f991 100644 --- a/tests/test_idle.py +++ b/tests/test_idle.py @@ -600,6 +600,37 @@ def test_TaskThread_onFinish(): assert onFinishCalled[0] +def test_TaskThread_onError(): + + taskCalled = [False] + onFinishCalled = [False] + onErrorCalled = [False] + + def task(): + taskCalled[0] = True + raise Exception('Task error') + + def onFinish(): + onFinishCalled[0] = True + + def onError(e): + onErrorCalled[0] = str(e) + + tt = idle.TaskThread() + tt.start() + + tt.enqueue(task, onFinish=onFinish, onError=onError) + + time.sleep(0.5) + + tt.stop() + tt.join() + + assert taskCalled[0] + assert onErrorCalled[0] == 'Task error' + assert not onFinishCalled[0] + + def test_TaskThread_isQueued(): called = [False]