33 lines
798 B
Python
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)
|