From 3435022483a3470b504b8c38fe2b4d7ce4045265 Mon Sep 17 00:00:00 2001 From: Bastian Schroll Date: Sun, 23 Sep 2018 21:15:37 +0200 Subject: [PATCH] improve tests, add is Running prop --- boswatch/utils/timer.py | 8 +++++++- test/test_timer.py | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/boswatch/utils/timer.py b/boswatch/utils/timer.py index 6bb32a8..f69c76d 100644 --- a/boswatch/utils/timer.py +++ b/boswatch/utils/timer.py @@ -70,7 +70,6 @@ class RepeatedTimer: if self._thread is not None: logging.debug("stop repeatedTimer: %s", self._thread.name) self._thread.join() - self._thread = None return True else: logging.warning("repeatedTimer always stopped") @@ -98,6 +97,13 @@ class RepeatedTimer: self._lostEvents += lostEvents self._overdueCount += 1 logging.debug("repeatedTimer thread stopped: %s", self._thread.name) + self._Thread = None # set to none after leave teh thread (running recognize) + + @property + def isRunning(self): + if self._thread: + return True + return False @property def restTime(self): diff --git a/test/test_timer.py b/test/test_timer.py index 76630c1..28462f1 100644 --- a/test/test_timer.py +++ b/test/test_timer.py @@ -44,12 +44,16 @@ class Test_Timer: """!Server a RepeatedTimer instance with fast worker""" self.testTimer = RepeatedTimer(0.1, Test_Timer.testTargetFast) yield 1 # server the timer instance + if self.testTimer.isRunning: + self.testTimer.stop() @pytest.fixture(scope="function") def useTimerSlow(self): """!Server a RepeatedTimer instance slow worker""" self.testTimer = RepeatedTimer(0.1, Test_Timer.testTargetSlow) yield 1 # server the timer instance + if self.testTimer.isRunning: + self.testTimer.stop() # test cases starts here @@ -65,6 +69,11 @@ class Test_Timer: def test_timerStopNotStarted(self, useTimerFast): assert not self.testTimer.stop() + def test_timerIsRunning(self, useTimerFast): + assert self.testTimer.start() + assert self.testTimer.isRunning + assert self.testTimer.stop() + def test_timerRun(self, useTimerFast): assert self.testTimer.start() time.sleep(0.2)