Any positional arguments after the callback will be passed to
the callback when it is called.
"""
+ if delay is None:
+ raise TypeError('delay must not be None')
timer = self.call_at(self.time() + delay, callback, *args,
context=context)
if timer._source_traceback:
Absolute time corresponds to the event loop's time() method.
"""
+ if when is None:
+ raise TypeError("when cannot be None")
self._check_closed()
if self._debug:
self._check_thread()
__slots__ = ['_scheduled', '_when']
def __init__(self, when, callback, args, loop, context=None):
- assert when is not None
super().__init__(callback, args, loop, context)
if self._source_traceback:
del self._source_traceback[-1]
def set_event_loop(self, loop):
"""Set the event loop."""
self._local._set_called = True
- assert loop is None or isinstance(loop, AbstractEventLoop)
+ if loop is not None and not isinstance(loop, AbstractEventLoop):
+ raise TypeError(f"loop must be an instance of AbstractEventLoop or None, not '{type(loop).__name__}'")
self._local._loop = loop
def new_event_loop(self):
If policy is None, the default policy is restored."""
global _event_loop_policy
- assert policy is None or isinstance(policy, AbstractEventLoopPolicy)
+ if policy is not None and not isinstance(policy, AbstractEventLoopPolicy):
+ raise TypeError(f"policy must be an instance of AbstractEventLoopPolicy or None, not '{type(policy).__name__}'")
_event_loop_policy = policy
self.assertIsInstance(h, asyncio.TimerHandle)
self.assertIn(h, self.loop._scheduled)
self.assertNotIn(h, self.loop._ready)
+ with self.assertRaises(TypeError, msg="delay must not be None"):
+ self.loop.call_later(None, cb)
def test_call_later_negative_delays(self):
calls = []
# tolerate a difference of +800 ms because some Python buildbots
# are really slow
self.assertLessEqual(dt, 0.9, dt)
+ with self.assertRaises(TypeError, msg="when cannot be None"):
+ self.loop.call_at(None, cb)
def check_thread(self, loop, debug):
def cb():
self.assertIsNone(h._callback)
self.assertIsNone(h._args)
- # when cannot be None
- self.assertRaises(AssertionError,
- asyncio.TimerHandle, None, callback, args,
- self.loop)
def test_timer_repr(self):
self.loop.get_debug.return_value = False
policy = asyncio.DefaultEventLoopPolicy()
old_loop = policy.get_event_loop()
- self.assertRaises(AssertionError, policy.set_event_loop, object())
+ self.assertRaises(TypeError, policy.set_event_loop, object())
loop = policy.new_event_loop()
policy.set_event_loop(loop)
def test_set_event_loop_policy(self):
self.assertRaises(
- AssertionError, asyncio.set_event_loop_policy, object())
+ TypeError, asyncio.set_event_loop_policy, object())
old_policy = asyncio.get_event_loop_policy()
--- /dev/null
+Replaced asserts with exceptions in asyncio, patch by Kumar Aditya.
\ No newline at end of file