36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
# Copyright 2021 (c) Anna Schumaker.
|
|
from . import publisher
|
|
from . import thread
|
|
import threading
|
|
import unittest
|
|
|
|
class TestThread(unittest.TestCase):
|
|
def setUp(self):
|
|
self.started = None
|
|
self.called = False
|
|
self.thread = thread.Thread(self.thread_func)
|
|
|
|
def thread_func(self):
|
|
self.assertIsNotNone(self.thread.thread)
|
|
self.called = True
|
|
|
|
def on_thread_start(self, thread):
|
|
self.started = thread
|
|
|
|
def test_thread(self):
|
|
self.assertIsInstance(thread.Start, publisher.Publisher)
|
|
thread.Start.register(self.on_thread_start)
|
|
|
|
self.assertIsInstance(self.thread.lock, type(threading.Lock()))
|
|
self.assertEqual(self.thread.func, self.thread_func)
|
|
self.assertIsNone(self.thread.thread)
|
|
self.assertFalse(self.thread.running())
|
|
|
|
self.assertEqual(self.thread(), self.thread)
|
|
self.thread.join()
|
|
|
|
self.assertTrue(self.called)
|
|
self.assertFalse(self.thread.running())
|
|
self.assertEqual(self.started, self.thread)
|
|
self.assertIsNone(self.thread.thread)
|