gh-125997: Increase test coverage for time.sleep() (#128751)

- Add tests for durations of invalid types.
- Add tests for `int` and `float` durations, including signed zeroes durations.
- Add tests for nonzero very small durations and durations close to the clock resolution.

---------

Co-authored-by: Victor Stinner <vstinner@python.org>
This commit is contained in:
Bénédikt Tran 2025-01-13 17:58:11 +01:00 committed by GitHub
parent 53e8942e69
commit b70a567575
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -158,10 +158,19 @@ class TimeTestCase(unittest.TestCase):
self.assertEqual(int(time.mktime(time.localtime(self.t))),
int(self.t))
def test_sleep(self):
def test_sleep_exceptions(self):
self.assertRaises(TypeError, time.sleep, [])
self.assertRaises(TypeError, time.sleep, "a")
self.assertRaises(TypeError, time.sleep, complex(0, 0))
self.assertRaises(ValueError, time.sleep, -2)
self.assertRaises(ValueError, time.sleep, -1)
time.sleep(1.2)
self.assertRaises(ValueError, time.sleep, -0.1)
def test_sleep(self):
for value in [-0.0, 0, 0.0, 1e-100, 1e-9, 1e-6, 1, 1.2]:
with self.subTest(value=value):
time.sleep(value)
def test_epoch(self):
# bpo-43869: Make sure that Python use the same Epoch on all platforms: