From 28057f9da051541e633150044a16bbe617768309 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ma=C5=9Blanka?= <piotr.maslanka@henrietta.com.pl> Date: Sun, 23 Apr 2023 09:23:53 +0200 Subject: [PATCH] fix reset_and_stop, v2.23.2 --- CHANGELOG.md | 1 + satella/__init__.py | 2 +- satella/time/measure.py | 18 ++++++++++++++++++ tests/test_time.py | 13 +++++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5960160f..d6099df8 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 30f94a2c..c75c4fcb 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 b56dcba4..08220a43 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 7088544c..a97c9c13 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) -- GitLab