diff --git a/tests/test_idle.py b/tests/test_idle.py index d97b19363da03edef7bfe472f0f8e34f831bd65b..fdee73ac7ab3ab93a02110587b6f397524df4767 100644 --- a/tests/test_idle.py +++ b/tests/test_idle.py @@ -427,6 +427,65 @@ def test_idle_alwaysQueue4(): assert called[0] +@pytest.mark.wxtest +def test_neverQueue(): _run_with_wx(_test_neverQueue) +def _test_neverQueue(): + called = [False] + def task(): + called[0] = True + + oldval = idle.idleLoop.neverQueue + + try: + idle.idleLoop.neverQueue = True + + idle.idle(task) + assert called[0] + + idle.idleLoop.neverQueue = False + called[0] = False + idle.idle(task) + + assert not called[0] + _wait_for_idle_loop_to_clear() + assert called[0] + + finally: + idle.idleLoop.neverQueue = oldval + + +@pytest.mark.wxtest +def test_synchronous(): _run_with_wx(_test_synchronous) +def _test_synchronous(): + + called = [False] + def task(): + called[0] = True + + def test_async(): + called[0] = False + idle.idle(task) + assert not called[0] + _wait_for_idle_loop_to_clear() + assert called[0] + + oldval = idle.idleLoop.neverQueue + + try: + idle.idleLoop.neverQueue = False + test_async() + + with idle.idleLoop.synchronous(): + called[0] = False + idle.idle(task) + assert called[0] + + test_async() + + finally: + idle.idleLoop.neverQueue = oldval + + @pytest.mark.wxtest def test_idle_timeout():