.. versionchanged:: 3.10
Removed the *loop* parameter.
+ .. versionchanged:: 3.13
+ Raises :exc:`ValueError` if *delay* is :data:`~math.nan`.
+
Running Tasks Concurrently
==========================
import functools
import inspect
import itertools
+import math
import types
import warnings
import weakref
await __sleep0()
return result
+ if math.isnan(delay):
+ raise ValueError("Invalid delay: NaN (not a number)")
+
loop = events.get_running_loop()
future = loop.create_future()
h = loop.call_later(delay,
self.assertEqual(t.result(), 'yeah')
self.assertAlmostEqual(0.1, loop.time())
+ def test_sleep_when_delay_is_nan(self):
+
+ def gen():
+ yield
+
+ loop = self.new_test_loop(gen)
+
+ async def sleeper():
+ await asyncio.sleep(float("nan"))
+
+ t = self.new_task(loop, sleeper())
+
+ with self.assertRaises(ValueError):
+ loop.run_until_complete(t)
+
def test_sleep_cancel(self):
def gen():