def setUp(self): self._logger = PythonLoggingLogger() self._period = timedelta(microseconds=1) self._monitor = StubMonitor(self._logger, self._period) self._monitor.do_log_record = MagicMock()
class TestMonitor(unittest.TestCase): """ Tests for `Monitor`. """ def setUp(self): self._logger = PythonLoggingLogger() self._period = timedelta(microseconds=1) self._monitor = StubMonitor(self._logger, self._period) self._monitor.do_log_record = MagicMock() def tearDown(self): self._monitor.stop() def test_is_running(self): self.assertFalse(self._monitor.is_running()) self._monitor.start() self.assertTrue(self._monitor.is_running()) def test_start(self): lock = Lock() lock.acquire() self._monitor.do_log_record.side_effect = lock.release self._monitor.start() self.assertTrue(self._monitor.is_running()) lock.acquire() def test_start_if_started(self): self._monitor.start() self._monitor.start() self.assertTrue(self._monitor.is_running()) def test_stop(self): lock = Lock() lock.acquire() self._monitor.do_log_record.side_effect = lock.release self._monitor.start() lock.acquire() self._monitor.stop() self._monitor.do_log_record.reset_mock() sleep(self._period.total_seconds() * 10) self.assertEqual(self._monitor.do_log_record.call_count, 0) def test_stop_if_not_started(self): self._monitor.stop() self.assertFalse(self._monitor.is_running())