raise
if not fallback:
- raise RuntimeError(
+ raise exceptions.SendfileNotAvailableError(
f"fallback is disabled and native sendfile is not "
f"supported for transport {transport!r}")
return await self._sendfile_fallback(transport, file,
transport = mock.Mock()
transport.is_closing.side_effect = lambda: False
transport._sendfile_compatible = constants._SendfileMode.FALLBACK
- with self.assertRaisesRegex(RuntimeError, 'fallback is disabled'):
+ with self.assertRaisesRegex(asyncio.SendfileNotAvailableError,
+ 'fallback is disabled'):
self.loop.run_until_complete(
self.loop.sendfile(transport, None, fallback=False))
--- /dev/null
+``asyncio``'s ``loop.sendfile(..., fallback=False)`` now consistently raises
+:exc:`asyncio.SendfileNotAvailableError` for fallback-only transports, such as
+SSL/TLS transports, when native sendfile cannot be used. Previously, this case
+raised :exc:`RuntimeError`.