# 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)