mycroft-core/test/unittests/util/test_monotonic_event.py

33 lines
798 B
Python

from threading import Thread
from time import sleep
from unittest import TestCase, mock
from mycroft.util.monotonic_event import MonotonicEvent
class MonotonicEventTest(TestCase):
def test_wait_set(self):
event = MonotonicEvent()
event.set()
self.assertTrue(event.wait())
def test_wait_timeout(self):
event = MonotonicEvent()
self.assertFalse(event.wait(0.1))
def test_wait_set_with_timeout(self):
wait_result = False
event = MonotonicEvent()
def wait_event():
nonlocal wait_result
wait_result = event.wait(30)
wait_thread = Thread(target=wait_event)
wait_thread.start()
sleep(0.1)
event.set()
wait_thread.join()
self.assertTrue(wait_result)