diff --git a/CHANGELOG.md b/CHANGELOG.md index 5960160f1185f09e4cf83f5781b90cb4aba7aa8b..d6099df8389099ee0bc6869f9ec6decf42aa5649 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ # v2.23.2 * minor changes to DictObject's documentation +* added methods reset_and_stop and property stopped to measure diff --git a/satella/__init__.py b/satella/__init__.py index 30f94a2c829a1a6f91259c28d753f685a56b4985..c75c4fcb29e0f8d53169c79c1dbda6f3a81d78a8 100644 --- a/satella/__init__.py +++ b/satella/__init__.py @@ -1 +1 @@ -__version__ = '2.23.2a1' +__version__ = '2.23.2' diff --git a/satella/time/measure.py b/satella/time/measure.py index b56dcba4637883514faaacd6a5ed134c39648d7f..08220a4363df240c8a230e2e6c5387475806c1b1 100644 --- a/satella/time/measure.py +++ b/satella/time/measure.py @@ -145,6 +145,15 @@ class measure: self.reset() self.start() + def reset_and_stop(self) -> None: + """ + Syntactic sugar for calling stop() and then reset() + + .. versionadded:: 2.23.2 + """ + self.stop() + self.reset() + def has_exceeded(self, value: float) -> bool: """ Return whether the timer has exceeded provided value. @@ -245,6 +254,15 @@ class measure: self.start() return self + @property + def stopped(self) -> bool: + """ + Whether this counter is already stopped + + .. versionadded:: 2.23.2 + """ + return self.stopped_on is not None + def stop(self) -> None: """ Stop counting time diff --git a/tests/test_time.py b/tests/test_time.py index 7088544c6bc9f3028e2238446522099010669e02..a97c9c13218b67ed97e071061361255f3d844e05 100644 --- a/tests/test_time.py +++ b/tests/test_time.py @@ -144,6 +144,19 @@ class TestTime(unittest.TestCase): time.sleep(1) self.assertTrue(measurement.timeouted) + def test_measure_reset_and_stop(self): + m1 = measure(create_stopped=True) + m1.start() + time.sleep(0.5) + self.assertFalse(m1.stopped) + self.assertGreaterEqual(m1(), 0.5) + m1.reset_and_stop() + self.assertTrue(m1.stopped) + self.assertEqual(m1(), 0) + m1.start() + time.sleep(0.5) + self.assertGreaterEqual(m1(), 0.5) + @unittest.skipIf('win' in sys.platform, 'Needs POSIX to run') def test_sleep(self): sleep(-2)